一、學習背景
最近在學習python制圖,準備做個模闆好出圖
目錄
- 一、學習背景
- 二、參考
- 三、代碼學習
-
- 方法1:自行設定錨點
- 方法2:以原點為基準
二、參考
這個學習系列都參考了B站UP主的視訊《【莫煩Python】Matplotlib Python 畫圖教程》,我是将他的代碼重新輸入下來後加入了自己的注釋和了解,感恩
三、代碼學習
方法1:自行設定錨點
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-3,3,50) #生成(-3,3)的50個點
y=2*x+1
plt.figure(num=1,figsize=(8,5)) #建立圖像
plt.plot(x,y,) #繪制圖像并設定線條名稱up
ax=plt.gca()
ax.spines['right'].set_color('none') #将右邊和上邊的軸的顔色設定為無色
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom') #将bottom設為x軸
ax.yaxis.set_ticks_position('left') #将bottom設為x軸
ax.spines['bottom'].set_position(('data',0)) #x軸的原點取在數值為0上
ax.spines['left'].set_position(('data',0)) #y軸的原點取在數值為0上
x0=1
y0=2*x0+1
plt.scatter(x0,y0,s=50,color='b') #顔色是藍色
plt.plot([x0,x0],[y0,0],'k--',lw=2.5) #畫一條,x的範圍是[x0,x0],y的範圍為[y0,0]的線,即起點為[x0,y0],終點為[x0,0]。顔色為black,形狀為--,線的寬度為2.5
#method1
#标注文字為2x+1=3,錨點為(x0,y0),xy以數值作為基準,标注文字的坐标可以調整,前面+30表示橫坐标右移30,後面-30表示縱坐标下移30,基于基準點來移動,以->的形式,指定弧度加入指向标記,以指定
plt.annotate(r'$2x+1=%s$'%y0, xy=(x0,y0),xycoords='data',xytext=(+30,-30),textcoords='offset points',fontsize=16,arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2'))
plt.show()
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL2E2YyQzNmFjM2QDO1QDO4UjYmRDMjRzNkBTZyEGN4EzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
方法2:以原點為基準
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-3,3,50) #生成(-3,3)的50個點
y=2*x+1
plt.figure(num=1,figsize=(8,5)) #建立圖像
plt.plot(x,y,) #繪制圖像并設定線條名稱up
ax=plt.gca()
ax.spines['right'].set_color('none') #将右邊和上邊的軸的顔色設定為無色
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom') #将bottom設為x軸
ax.yaxis.set_ticks_position('left') #将bottom設為x軸
ax.spines['bottom'].set_position(('data',0)) #x軸的原點取在數值為0上
ax.spines['left'].set_position(('data',0)) #y軸的原點取在數值為0上
x0=1
y0=2*x0+1
plt.scatter(x0,y0,s=50,color='b') #顔色是藍色
plt.plot([x0,x0],[y0,0],'k--',lw=2.5) #畫一條,x的範圍是[x0,x0],y的範圍為[y0,0]的線,即起點為[x0,y0],終點為[x0,0]。顔色為black,形狀為--,線的寬度為2.5
#method1
#以原點為基準,x減少即左移3.7 y上移3
plt.text(-3.7,3,r'$This\ is\ the\ some\ text.\ \mu\ \sigma_i\ \alpha_t$',fontdict={'size':16,'color':'r'})
plt.show()