網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
1. 2D坐標(biāo)軸
1.1 繪制簡(jiǎn)單的曲線
import matplotlib.pyplot as plt import numpy as np x=np.linspace(-1,1,50)#-1到1中畫50個(gè)點(diǎn) y=x**2 plt.plot(x,y,color='green') plt.tick_params(axis='x',colors='blue') plt.tick_params(axis='y',colors='red') plt.show()
作圖:
1.2 坐標(biāo)軸的刻度線向內(nèi)
import matplotlib.pyplot as plt import numpy as np x=np.linspace(-1,1,50)#-1到1中畫50個(gè)點(diǎn) y=x**2 # 下面兩行代碼要放在plt.plot的前面 plt.rcParams['xtick.direction'] = 'in'#將x軸的刻度線方向設(shè)置向內(nèi) plt.rcParams['ytick.direction'] = 'in'#將y軸的刻度線方向設(shè)置向內(nèi) plt.plot(x,y,color='green') plt.tick_params(axis='x',colors='blue') plt.tick_params(axis='y',colors='red') plt.show()
1.3 將坐標(biāo)刻度從整0開(kāi)始
plt.margins(x=0) plt.margins(y=0) #設(shè)置坐標(biāo)軸范圍 #plt.ylim([0,0.8]) #plt.xlim([0,0.75])
1.4 設(shè)置刻度柵格
簡(jiǎn)單的刻度:
plt.grid()
主刻度和次刻度
import matplotlib.pyplot as plt import numpy as np plt.figure(figsize=(17,3)) ax = plt.gca() ax.xaxis.set_major_locator(plt.MultipleLocator(0.2)) #設(shè)置x軸主刻度 ax.xaxis.set_minor_locator(plt.MultipleLocator(0.04)) #設(shè)置x軸次刻度 ax.yaxis.set_major_locator(plt.MultipleLocator(0.5)) #設(shè)置x軸次刻度 ax.yaxis.set_minor_locator(plt.MultipleLocator(0.1)) #設(shè)置x軸次刻度 ax.grid(which='major',axis="both",linewidth=0.75,linestyle='-',color='r') ax.grid(which='minor',axis="both",linewidth=0.25,linestyle='-',color='r') x=np.linspace(0,3*np.pi,50)#-1到1中畫50個(gè)點(diǎn) y=2*np.sin(x) plt.plot(x,y) plt.margins(x=0) plt.margins(y=0) plt.show()
下面的圖形類似于心電圖紙繪制,關(guān)于心電圖相關(guān)的繪制,具體在使用python繪制心電圖中體現(xiàn):
1.5 不顯示坐標(biāo)
只是坐標(biāo)刻度不可見(jiàn),兩種方式的效果一樣
# plt.xticks([]) plt.yticks([]) # 或者下面的 # frame.axes.get_xaxis().set_visible(False) # x 軸不可見(jiàn) frame.axes.get_yaxis().set_visible(False) # y 軸不可見(jiàn)
關(guān)閉兩者坐標(biāo)軸,只有曲線圖形
plt.axis('off')
1.6 坐標(biāo)值
為坐標(biāo)設(shè)置刻度值, 并且將刻度值旋轉(zhuǎn)45度
import matplotlib.pyplot as plt import numpy as np x=np.linspace(0,2,50)#-1到1中畫50個(gè)點(diǎn) y=x**2 plt.rcParams['xtick.direction'] = 'in'#將x軸的刻度線方向設(shè)置向內(nèi) plt.rcParams['ytick.direction'] = 'in'#將y軸的刻度線方向設(shè)置向內(nèi) ax = plt.gca() xlabel=[str(val)+'_1' for val in range(100,110)] ax.set_xticklabels(xlabel) plt.xticks(rotation = 45) plt.plot(x,y,color='green') plt.tick_params(axis='x',colors='blue') plt.tick_params(axis='y',colors='red') plt.margins(x=0) plt.margins(y=0) plt.show()
1.7 繪制橫線和豎線
plt.axvline(1) plt.axhline(1.5)
1.8 設(shè)置坐標(biāo)點(diǎn)的顏色
下圖中設(shè)置y軸第3個(gè)坐標(biāo)值的顏色為黃色,x軸第6個(gè)坐標(biāo)值顏色為綠色。
import matplotlib.pyplot as plt import numpy as np x=np.linspace(0,2,50)#-1到1中畫50個(gè)點(diǎn) y=x**2 plt.rcParams['xtick.direction'] = 'in'#將x軸的刻度線方向設(shè)置向內(nèi) plt.rcParams['ytick.direction'] = 'in'#將y軸的刻度線方向設(shè)置向內(nèi) ax = plt.gca() plt.plot(x,y,color='green') plt.tick_params(axis='x',colors='blue') plt.tick_params(axis='y',colors='red') ax.get_yticklabels()[3].set_color("y") ax.get_xticklabels()[6].set_color("g") plt.show()
1.9 雙坐標(biāo)
代碼如下:
import numpy as np import matplotlib.pyplot as plt t = np.arange(0.01, 10.0, 0.01) data1 = np.exp(t) data2 = np.sin(2 * np.pi * t) fig, ax1 = plt.subplots() color = 'tab:red' ax1.set_xlabel('time (s)') ax1.set_ylabel('exp', color=color) ax1.plot(t, data1, color=color) ax1.tick_params(axis='y', labelcolor=color) ax2 = ax1.twinx() # instantiate a second axes that shares the same x-axis color = 'tab:blue' ax2.set_ylabel('sin', color=color) # we already handled the x-label with ax1 ax2.plot(t, data2, color=color) ax2.tick_params(axis='y', labelcolor=color) fig.tight_layout() # otherwise the right y-label is slightly clipped plt.show()
2. 3D坐標(biāo)軸
2.1 繪制3D散點(diǎn)圖
關(guān)鍵代碼ax.scatter(xs, ys, zs, c=c, marker=m)
,輸入數(shù)據(jù)xs,ys,zs是相同長(zhǎng)度的一維數(shù)據(jù)。c是顏色,marker是散點(diǎn)類型。
from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import numpy as np def randrange(n, vmin, vmax): return (vmax - vmin)*np.random.rand(n) + vmin fig = plt.figure() ax = fig.add_subplot(111, projection='3d') n = 100 for c, m, zlow, zhigh in [('r', '*', -10, 20), ('b', 'o', -30, -10)]: xs = randrange(n, 23, 32) ys = randrange(n, 0, 100) zs = randrange(n, zlow, zhigh) ax.scatter(xs, ys, zs, c=c, marker=m) ax.set_xlabel('X Label') ax.set_ylabel('Y Label') ax.set_zlabel('Z Label') plt.show()
2.2 繪制3D曲面圖
import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D fig=plt.figure(num=1,figsize=(8,6)) ax = Axes3D(fig) X = np.arange(-4, 4, 0.25) Y = np.arange(-4, 4, 0.25) X, Y = np.meshgrid(X, Y) R = np.sqrt(X ** 2 + Y ** 2) # height value Z = np.cos(R) ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.get_cmap('rainbow'),edgecolors='white') ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=plt.get_cmap('rainbow'))#投影等高線,改變zdir='x', offset=-4實(shí)現(xiàn)投影到不同坐標(biāo)軸 ax.set_zlim(-2, 2) ax.tick_params(axis='x',colors='g') ax.tick_params(axis='y',colors='g') ax.tick_params(axis='z',colors='g') plt.show()
2.3 繪制3D柱形圖
import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from matplotlib import cm X=np.arange(0, 9, step=1)#X軸的坐標(biāo) Y=np.arange(0, 10, step=1)#Y軸的坐標(biāo) arr = [[np.random.randint(1,50) for i in range(9)] for i in range(10)] Z = np.array(arr) xx, yy=np.meshgrid(X, Y)#網(wǎng)格化坐標(biāo) X, Y=xx.ravel(), yy.ravel()#矩陣扁平化 bottom=np.zeros_like(X)#設(shè)置柱狀圖的底端位值 Z=Z.ravel()#扁平化矩陣 width=height=0.8#每一個(gè)柱子的長(zhǎng)和寬 #繪圖設(shè)置 fig=plt.figure() ax=fig.gca(projection='3d')#三維坐標(biāo)軸 ax.bar3d(X, Y, bottom, width, height, Z, shade=True,color='lightgreen')# #坐標(biāo)軸設(shè)置 ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z') plt.show()
引用
[1]Matplotlib 文檔
[2]python繪制三維圖
[3]python-繪制3D柱形圖
[4]Python + matplotlib更改縱橫坐標(biāo)刻度顏色
[5]Python繪圖總結(jié)(Matplotlib篇)之坐標(biāo)軸及刻度
總結(jié)
原文鏈接:https://blog.csdn.net/zds13257177985/article/details/124366300
相關(guān)推薦
- 2022-04-24 Python元素集合的列表切片_python
- 2022-03-08 用C語(yǔ)言實(shí)現(xiàn)鏈?zhǔn)綏=榻B_C 語(yǔ)言
- 2022-08-21 Caffe卷積神經(jīng)網(wǎng)絡(luò)視覺(jué)層Vision?Layers及參數(shù)詳解_python
- 2022-12-05 Golang中的錯(cuò)誤處理的示例詳解_Golang
- 2022-12-03 設(shè)置界面開(kāi)發(fā)Preference?Library數(shù)據(jù)重建機(jī)制詳解_Android
- 2022-05-27 PyTorch中torch.nn.functional.cosine_similarity使用詳解_
- 2023-07-08 windows編譯libevent報(bào)錯(cuò)
- 2022-08-02 C#中的multipart/form-data提交文件和參數(shù)_C#教程
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支