matplotlib


官網範例

圖的概念

圖的概念

匯入模組

匯入模組

圖表顯示操作

  • 使用腳本:
    若在腳本中運行matplotlib的話顯示繪圖需要使用plt.show(),若顯示繪圖後變更繪圖而繪圖沒有更新則使用plt.draw()
  • 使用Ipython notebook:
    使用Ipython notebook不需要使用plt.show()繪圖運行時會自動顯示,若顯示繪圖後變更繪圖而繪圖沒有更新則使用plt.draw(),可以使用%matplotlib notebook使用交互模式(3D圖可以旋轉等功能),使用%matplotlib inline則使用靜態模式(靜態圖形)。

Latex功能

Latex
matplotlib在字串中支持Latex功能,較複雜的LaTeX 需使用 LaTeX 渲染,需要安裝 LaTeX 和 Ghostscript,否則一直會報錯:FileNotFoundError: [WinError 2] 系統找不到指定的文件,若Latex式子不複雜有時可以不開啟LaTeX渲染。
proTeXt - 基於MiKTeX的Windows發行版
Ghostscript

  • 打開Latex功能
  • path設置
  • 若安裝完成也設置好path報錯:
    嘗試刪除您的.matplotlib/tex.cache目錄。如果您不知道在哪裡找到.matplotlib,請參閱matplotlib配置和緩存目錄位置
  • 範例:
    Latex顯示對數分布函數 範例

顯示中文

matplotlib無法正常顯示中文需要在使用到中文的圖表前修改matlinplot字型設定,輸出圖表後在修改回來,修改後不可與特殊符號混用(中文不支持一些特殊符號),腳本在plt.show()前修改,若是在Ipython notebook或同視窗執行,則一次只能套用一種設定。

plt.rcParams['font.sans-serif'] = ['SimHei']  # 用來正常顯示中文標籤(修改默認字型)
plt.rcParams['axes.unicode_minus'] = False   # 用來正常顯示負號(修改設定)
plt.rcParams['font.sans-serif'] = ['DejaVu Sans']  # 用來正常顯示中文標籤(回復默認字型)
plt.rcParams['axes.unicode_minus'] = True  # 用來正常顯示負號(回復默認設定)
#在參數加fontproperties='SimHei',不用回復默認字型
set_ylabel("$L(\mu,\Sigma)$對$\mu$",fontproperties='SimHei')

範例 範例

圖與子圖控制

當子圖有指定變數時(例如a=subplot(111)),pyplot.xxx方法大多可以呼叫a.set_xxx或a.xxx方法,細部設定建議使用此方法。
詳細參數請參考官方API文檔
matplotlib.pyplot.figure
matplotlib.pyplot.subplot
matplotlib.pyplot.axes
matplotlib.gridspec.GridSpec
範例:
參數(行、列、編號),排列方式為:(由左至右,由上至下) axes([x座標,y座標,圖長,圖寬]) GridSpec(行數,列數,hspace=高度間距,wspace=寬度間距) GridSpec結果

圖表讀寫

matplotlib.pyplot.savefig
matplotlib.pyplot.imsave
matplotlib.pyplot.imread
例1 例2 結果1 結果2

刻度控制

主刻度(majorticks)、次刻度(minorticks),標籤(xlabel,ylabel),刻度值(xticks,yticks),刻度範圍(xlim,ylim)、刻度參數(tick_params)。

樣式設置

範例

2D圖

3D圖

3D圖繪圖方法
3D圖所有相關方法

  • 表面圖
    Axes3D.plot_surface(X, Y, Z, *args, norm=None, vmin=None, vmax=None, lightsource=None, **kwargs)
    z=x+y 範例

  • 線形圖
    Axes3D.plot(xs,ys,* args,zdir =‘z’,** kwargs )
    範例

  • 散點圖
    Axes3D.scatter(xs,ys,zs = 0,zdir =‘z’,s = 20,c = None,depthshade = True,* args,** kwargs )
    範例 範例

  • 線框圖
    Axes3D.plot_wireframe(X,Y,Z,* args,** kwargs )
    範例

  • 等高線圖
    Axes3D.contour(X, Y, Z, *args, zdir=‘z’, offset=None, **kwargs)
    範例

  • 填充等高線圖
    Axes3D.contourf(X, Y, Z, *args, zdir=‘z’, offset=None, **kwargs)
    範例

  • 向量圖
    Axes3D.quiver(* args,length = 1,arrow_length_ratio = 0.3,pivot =‘tail’,normalize = False,** kwargs )
    範例

其他比較少用的方法請參考官方範例

動畫

動畫

進階應用

matplotlib還有許多工具包與相關模塊套件可以使用,下面列舉其中一些,更深入可以到官網查詢以及參考一些前輩的文章。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值