matplotlib可視化最全指南


 

1. 折線圖:plt.plot

  • 設置數據:plt.plot(x,y),單列數據傳入默認y軸,此時x軸數據默認從0逐漸對應遞增
  • 設置顏色:plt.plot(x,y,color/c=" "),RGB顏色列表為:xkcd.com/color/rgb/
  • 設置數據點的形狀:plt.plot(x,y,marker=" "), 符號參考: matplotlib.org/api/markers…
  • 設置連接線風格:plt.plot(x,y,linestyle/ls=" ")
  1. '-' or 'solid' ——solid line
  2. '--' or 'dashed' ——dashed line
  3. '-.' or 'dashdot' ——dash-dotted line
  4. ':' or 'dotted' ——dotted line
  5. 'None'/' '/'' ——draw nothing
  • 其它設置:線寬-linewidth/lw=n;點大小-markersize=m;透明度-alpha=m;label='XXX'用於設置標簽(必須使用plt.legend(loc="upper left")來顯示標簽)
  • 顏色點線同時設置:"ro-"
  • 同時繪制多條線:plt.plot(x1,y1,"ro",x2,y2,"b0")

2. 散點圖:plt.scattor

  • 設置數據:plt.scatter(x,y),必須傳入x,y
  • 設置點的大小:plt.scatter(x,y,s),s為入一維數組,表示點的大小,默認統一為20
  • 設置顏色
  1. 可以用c='X'設置單個顏色,
  2. 也可以用'c=seq'使得序列中對應位置數字相同的點顏色相同,此時可以用cmap='XXX'來設置顏色模式。如下圖,第一個第三個點數字相同,則顏色相同
  3. 或者直接c=['r','b'...]來設置不同顏色
  4. cmap可使用的顏色模式參考鏈接: matplotlib.org/examples/co…

 

在這里插入圖片描述

 

  • 設置數據點的形狀:同plot
  • 其它設置:線寬-linewidth/lw=n;點大小-markersize=m;透明度-alpha=m;邊緣顏色-edgecolor=X;label='XXX'用於設置標簽(必須使用plt.legend(loc="upper left")來顯示標簽) 在這里插入圖片描述

3. 柱狀圖:plt.bar

  • 設置數據:plt.bar(x,y),必須同時傳入x,y,x表示各個柱的位置,y表示高度
  • 設置柱形寬度:plt.bar(x,y,width),width設置寬度,默認0.8
  • 設置顏色:可以用color/facecolor='X'設置單個顏色,也可以用'color=['r','b'...]'設置多個顏色。顏色參考:xkcd.com/color/rgb/
  • 其它設置:線寬-linewidth/lw=n;透明度-alpha=m;邊緣顏色-edgecolor=X;基座高度-bottom=0.2;label='XXX'用於設置標簽(必須使用plt.legend(loc="upper left")來顯示標簽)

4. 直方圖:plt.hist

  • 設置數據:plt.hist(x,bins),必須傳入x,y,x為數據;y為柱形個數,可以為'auto'
  • 頻數/頻率圖:density=True默認為頻率/False頻數
  • 設置數據范圍:range=(a,b),限定數據范圍
  • 柱子間隙:rwidth=n,默認為0
  • 設置柱形寬度:plt.bar(x,y,width),width設置寬度,默認0.8
  • 設置顏色:可以用color/facecolor='X'設置單個顏色。顏色參考:xkcd.com/color/rgb/
  • 其它尺寸:線寬-linewidth/lw=n;透明度-alpha=m;邊緣顏色-edgecolor=X;label='XXX'用於設置標簽(必須使用plt.legend(loc="upper left")來顯示標簽)

 

在這里插入圖片描述

 

5. 箱線圖:plt.boxplot

  • 設置數據:plt.boxplot(x) ,x為多列數據-[列1,列2...]
  • 設置箱型:plt.boxplot(x,notch=),notch默認為false,長方形;False是指在50%位顯示缺口,缺口越大,數*據越分散
  • 設置橫向縱向:plt.boxplot(x,vert=),vert默認True,垂直狀態;False顯示橫向
  • 設置最大最小值:plt.boxplot(x,whis=[n,m]),whis=[25,85],表示限度在25%到85%之間,即頂端橫線的位置
  • 設置箱體寬度:widths=
  • 設置箱體填充:patch_artist=True
  • 設置各箱型名稱:labels=[1,2,3...]
  • 每個箱型填充不同顏色:需遍歷填充,bplot[boxes]取到各個箱型,遍歷填充
  • 在這里插入圖片描述 在這里插入圖片描述

6. 其它設置

  • 設置坐標軸范圍:plt.axis([xmin, xmax, ymin, ymax]) ,四個參數必須同時包括
  • 設置xy坐標軸名稱:plt.x/ylabel("XXX")
  • 設置圖表標題:plt.title("XXX")
  • 顯示網格:plt.grid(True)
  • 同一張子圖上繪制:plt.plot(ax=ax1))
  • 直接用dataframe繪圖:df.plot(x=,y=,kind=,label=)
  • 對某點設置注釋:plt.annotate('注釋內容',xy=(被標注點坐標),xytext=(內容文本坐標),arrowprops= dict(width=箭頭方塊寬度, headwidth=箭頭尖寬度, headlength=箭頭尖長度, shrink=收縮比例,越大越短, facecolor=箭頭顏色 ))

 

在這里插入圖片描述

 

7. 繪圖步驟

  • 設置畫板

plt.figure( num-畫板編號,默認逐漸遞增;
figsize(a,b)-畫板尺寸;
dpi分辨率,默認100; facecolor-背景顏色,默認白;
edgecolor-邊框顏色,默認白;
frameon=True是否顯示繪圖框, clear=False是否清楚已存在的同名圖)

  • 設置單個子圖:ax1=plt.subplot(221),ax2=plt.subplot(222)
  • sharex/y=True表示所有子圖使用相同的x/y刻度
  • 同時創建多個子圖:axes/((ax1,ax2),(ax3,ax4))=plt.subplots(2,1,sharex=True),axes[0,1]...
  • 任意位置繪圖:ax1 = fig.add_axes([left, bottom, width, height],),left, bottom表示位於畫板的百分之幾位置;width, height表示寬高占畫板的多少
  • 子圖設置標題,標簽:ax1.set_title("XXX");ax1.set_xlable() plt.subplot2grid式

ax1=plt.subplot2grid((3, 3), (1, 0),colspan=2,rowspan=1)

表示設置一個3行3列的繪圖區域,在第2行,第一列位置開始繪圖,列跨度為2,行跨度為1

  • GridSpec式

import matplotlib.gridspec as gridspec

gs = gridspec.GridSpec(3, 3)

ax7 = plt.subplot(gs[1, :2]),表示子圖占第2行和第3列前的所有列,

ax10 = plt.subplot(gs[-1, -2]),表示子圖占倒數第1行和倒數第2列.

  • 設置字體大小

ax = plt.subplot(111) 設置刻度字體大小:plt.xticks(fontsize=20);plt.yticks(fontsize=20) 設置坐標標簽字體大小:ax.set_xlabel(..., fontsize=20);ax.set_ylabel(...,fontsize=20) 設置圖例字體大小:ax.legend(..., fontsize=20)

 

在這里插入圖片描述

 

 

在這里插入圖片描述

 

歡迎關注我的公眾號,了解一個學設計卻做了運營最后成了數據分析師並努力成為大數據工程師的女程序員的成長之路。

 

在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM