tft每日頭條

 > 生活

 > pythonmatplotlib怎麼設置柱狀圖

pythonmatplotlib怎麼設置柱狀圖

生活 更新时间:2025-02-24 18:10:34

1.說明:

1.1 推薦指數:★★★

1.2 基礎知識:三角函數sin和cos,在計算機編程中,尤其python中,應用到畫圓很重要。

1.3 用通俗易懂的方式,來講解,三角函數的matplotlib作圖,靜态圖,為以後的畫圓打基礎。

1.4 為了突出重點,暫時不提中文設置。複習matplotlib作圖的基礎知識,深入了解sin和cos的關系。

1.5 适合學習人群:小白、學生、老師、愛好作圖人員和計算機編程人員閱讀。

pythonmatplotlib怎麼設置柱狀圖(python的matplotlib的三角函數sin和cos的靜态作圖詳解)1

2.理論:

比如:

r = 1 #假設半徑為1 # 0~2π(一圈,一個π是半圈,步長=0.01,步長越小圖線越平滑) a = np.arange(0,2*np.pi,0.01) #圓的坐标點與三角函數的關系 x = r*np.cos(a) y = r*np.sin(a) #畫圓 plt.plot(x,y,color='red')

3.sin正弦函數

3.1 靜态:sin-s

3.2 代碼:簡潔版

#---導出模塊--- import matplotlib.pyplot as plt import numpy as np #定義坐标關系 x = np.arange(-2*np.pi,2*np.pi,0.1) y = np.sin(x) #畫線 plt.plot(x,y,color='blue') plt.title('sin-s') #标題 plt.legend(['sin']) #圖例,注意中括号 plt.show() #圖片展示

3.3 圖

sin-s-1

pythonmatplotlib怎麼設置柱狀圖(python的matplotlib的三角函數sin和cos的靜态作圖詳解)2

3.4 代碼:注釋版

#---導出模塊--- import matplotlib.pyplot as plt import numpy as np #---定義畫布大小和分辨率 #fig = plt.figure(figsize=(8,8),dpi=80) #自定義 #fig = plt.figure() #這是默認的,也可以這一行不設,就是默認 #---畫正弦sin曲線--- #0.001越小,線條越平滑好看 #從-2*np.pi到2*np.pi=就是2個2π,4個波=2個波峰 2個波底 #x = np.arange(-2*np.pi,2*np.pi,0.001) x = np.arange(-2*np.pi,2*np.pi,0.1) y = np.sin(x) #畫線 plt.plot(x,y,color='blue') #默認顯示2個2π,4個波=2個波峰 2個波底 #plt.ylim(-2, 2) #plt.xlim(-2, 2) plt.title('sin-s') #标題 plt.legend(['sin']) #圖例,注意中括号 plt.show() #圖片展示

4.cos餘弦函數:

4.1 将上面的sin函數的簡潔版的代碼中,sin改為cos即可,顔色定義為綠色=green。

4.2 代碼:簡潔版

#---導出模塊--- import matplotlib.pyplot as plt import numpy as np #---畫正弦cos曲線--- x = np.arange(-2*np.pi,2*np.pi,0.1) y = np.cos(x) #畫線 plt.plot(x,y,color='green') plt.title('cos-s') #标題 plt.legend(['cos']) #圖例,注意中括号 plt.show() #圖片展示

4.3 圖:cos-s-1

pythonmatplotlib怎麼設置柱狀圖(python的matplotlib的三角函數sin和cos的靜态作圖詳解)3

5.一個坐标系展示sin和cos作圖法

5.1 代碼1:

#---導出模塊--- import matplotlib.pyplot as plt import numpy as np #plt.figure() #可以不要,采用默認 #取值範圍-2π~2π,比較能展現sin和cos的特點 #0.1~0.001,最好越小越好,線條越平滑 x=np.arange(-2*np.pi,2*np.pi,0.1) y1=np.sin(x) #正弦sin函數線條 y2=np.cos(x) #餘弦cos函數線條 #繪制兩個圖形,需要繪制兩次 #不設置顔色,采用默認的2種不同顔色,也可以單獨設置顔色 #本講解中sin設置藍色=blue,cos設置為綠色=green plt.plot(x,y1,color='blue') plt.plot(x,y2,color='green') #增加标題 plt.title('x‘sin and cos') #增加圖例 plt.legend(['y=sinx','y=cosx']) #增加x軸和y軸标簽名 plt.xlabel('x-v') plt.ylabel('y-v',rotation=0) #圖片展示 plt.show()

5.2 圖:sin-cos-s-1

pythonmatplotlib怎麼設置柱狀圖(python的matplotlib的三角函數sin和cos的靜态作圖詳解)4

5.3 升級版,代碼:

#---導出模塊--- import numpy as np from matplotlib import pyplot as plt #---sin和cos的坐标值定義--- #---注意np的arrange和linspace的含義,在這裡區别不大 ##在-np.pi~np.pi之間選擇256個等差數 #x = np.linspace(-2*np.pi, 2*np.pi, 512, endpoint=True) x =np.arange(-2*np.pi,2*np.pi,0.001) #y1=sin,y2=cos y1, y2 = np.sin(x), np.cos(x) #定義畫布大小,不設置就是默認 #plt.figure(figsize=(10, 7))#取出一張10*7的白紙 #畫sin和cos,自定義顔色blue和green,label="sin",label="cos" plt.plot(x, y1, "-", color='blue',lw=2, aa=False, ms=50)#設置線寬5 aa關閉抗鋸齒 默認開啟 plt.plot(x, y2, "-", color='green',lw=2, aa=True)#默認線寬10,不設置就是默認 #去掉就是默認 #自定義刻度法,取最大值×1.2 plt.xlim(x.min() * 1.2, x.max() * 1.2)#橫坐标範圍 plt.ylim(y1.min() * 1.2, y1.max() * 1.2)#縱坐标範圍 plt.xticks([0, x.max(), x.min()], [0, r"$\pi$", "$-\pi$"])#橫坐标刻度 plt.yticks([y1.min(), y1.max()])#縱坐标刻度 #圖例個性設置,自定義字體大小,位置默認是最佳,顯示内容是label内容 #也可以這樣 plt.legend(['sin','cos'],fontsize=20) #plt.legend(fontsize=20) #如何這樣的話,那麼需要在上面加入label #标注設置 t = 2 / 3 * np.pi #标注藍色點垂直線 plt.plot([t, t], [0, np.sin(t)], "--", color="b") plt.scatter([t], [np.sin(t)], s=100)#散點圖 #标注紅色點垂直線 plt.plot([t, t], [0, np.cos(t)], "--", color="r") plt.scatter([t], [np.cos(t)], s=100)#散點圖 #設置标注 plt.annotate(r"$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$", (t, np.sin(t)), xycoords="data", textcoords="offset pixels", xytext=(20, 20), arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭頭屬性 fontsize=16,#zi字體大小 ) #設置标注 plt.annotate(r"$\cos(\frac{2\pi}{3})=-\frac{1}{2}$", (t, np.cos(t)), xycoords="data", textcoords="offset pixels", xytext=(20, 0), arrowprops=dict(arrowstyle="->" , connectionstyle="arc3,rad=.2"),#箭頭屬性 fontsize=16,#zi字體大小 ) #ax定義和邊框線,也可以注釋掉,那就是默認 ax = plt.gca() #去除圖片的四邊黑框線 ax.spines["bottom"].set_position(("data", 0)) ax.spines["left"].set_position(("data", 0)) ax.spines["top"].set_color("none") ax.spines["right"].set_color("none") #圖片展示 plt.show()

5.4 圖:sin-cos-s-2

pythonmatplotlib怎麼設置柱狀圖(python的matplotlib的三角函數sin和cos的靜态作圖詳解)5

5.5 豪華版代碼:

#---導出模塊--- import numpy as np import matplotlib.pyplot as plt #---函數定義和畫函數線--- #x坐标的取值範圍:linspace是等差數列法 x=np.linspace(-2*np.pi,2*np.pi,256,endpoint=True) #arrange法,因為0.001取值很小很平滑,所以可能☆就不能顯示 #x =np.arange(-2*np.pi,2*np.pi,0.001) #定義餘弦函數正弦函數,一行定義法,也可以y1和y2 c,s=np.cos(x),np.sin(x) #畫三角函數曲線,以x為橫坐标,以s和c為縱坐标 #plt.plot(x,s,"r*",label="sin-s-3") #r*=red的*,相當于color='red',linestyle="*" plt.plot(x,s,color="blue",label="sin-s-3") plt.plot(x,c,color="green",linestyle="-",label="cos-s-3",alpha=0.5) ax=plt.gca() #去除圖片的四邊的邊框黑線 ax.spines["right"].set_color("none") ax.spines["top"].set_color("none") ax.spines["left"].set_position(("data",0)) ax.spines["bottom"].set_position(("data",0)) #自定義标簽文字 #x軸标簽依次是:,如果注釋掉就是-6~6,間隔2 plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$ \pi/2$',r'$ \pi$']) #y軸的标簽,取值從-1~1,分5個等差 plt.yticks(np.linspace(-1,1,5,endpoint=True)) #默認标簽位置也是這樣,所以可以不要,注釋掉 #ax.xaxis.set_ticks_position("bottom") #線下 #ax.yaxis.set_ticks_position("left") #線左邊 ''' #如果上面的2行注釋掉,那麼下面的存在意義不大,也可以注釋掉 for label in ax.get_xticklabels() ax.get_yticklabels(): label.set_fontsize(16) label.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2)) ''' #固定面積顯示 plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="yellow",alpha=0.25) #固定垂直虛線标注 t=1 plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle="--") #箭頭标注 plt.annotate("cos(1)",xy=(t,np.cos(1)),xycoords="data",xytext=( 10, 30), textcoords="offset points",arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2")) #增加标題 plt.title("sin-cos-s-3") #plt.figure(1) #可以注釋掉,采用默認 #圖例顯示,loc代表位置,這是固定左上角位置,默認best,最佳位置,可以自動調節空擋顯示 plt.legend(loc="upper left") #顯示網格,可以注釋掉 plt.grid() #顯示圖形 plt.show()

5.6 圖:sin-cos-s-3

pythonmatplotlib怎麼設置柱狀圖(python的matplotlib的三角函數sin和cos的靜态作圖詳解)6

6 sin和cos的布局

6.1 ggplot法,代碼:

#導出模塊 import numpy as np import matplotlib.pyplot as plt #畫布采用默認大小 fig=plt.figure() #采用ggplot法布局三個圖片位置 plt.style.use('ggplot') left,width = 0.05,0.95 #位置布局一:上面一行2個 rect_sin=[left,0.55,0.45,0.3] #第1個圖 rect_cos=[left 0.5,0.55,0.45,0.3] #第2個圖 ''' #位置布局二:上下2個,靠左 rect_sin=[left,0.55,0.45,0.3] #第1個圖 rect_cos=[left,0.1,0.45,0.3] #第2個圖 ''' #定義x和y坐标 #x=np.linspace(-10,10) #未設置等分,則線條不平滑 #x=np.linspace(-10,10,260) #260等分,數值越大,曲線的線條越平滑 x=np.arange(-10,10,0.001) #arange則是0.001,越小越平滑 #y1=np.sin(x) #y1=np.cos(x) #---第1個圖---正弦sin ax_sin = fig.add_axes(rect_sin) ax_sin.plot(x,np.sin(x),color='blue') ax_sin.set_title('Sin-s-ggplot') #---第2個圖---餘弦cos ax_cos=fig.add_axes(rect_cos) ax_cos.plot(x,np.cos(x),color='green') ax_cos.set_title('Cos-s-ggplot') #圖片展示 plt.show()

圖:2lf-ggplot法

pythonmatplotlib怎麼設置柱狀圖(python的matplotlib的三角函數sin和cos的靜态作圖詳解)7

2ud-ggplot法圖

pythonmatplotlib怎麼設置柱狀圖(python的matplotlib的三角函數sin和cos的靜态作圖詳解)8

6.2 subplot法

代碼: #---導出模塊--- import matplotlib.pyplot as plt import numpy as np #---定義畫布大小和分辨率--- fig = plt.figure(figsize=(8,8),dpi=80) #采用subplot法,分四個圖 #2,2,1=2行2列,第一個,從左邊數 # 畫正弦曲線 fig.add_subplot(2,2,1) x = np.arange(-2*np.pi,2*np.pi,0.001) y = np.sin(x) plt.plot(x,y,color='blue') plt.title('Sin-s-subplot') plt.legend(['sin']) #方法一:第1行1和2并列 # 餘弦,2,2,2=2行2列,第2個,從左邊數 #fig.add_subplot(2,2,2) #方法二:第1行1和第2行1,上下 # 餘弦,2,2,2=2行2列,第2個,從左邊數 fig.add_subplot(2,2,3) x = np.arange(-2*np.pi,2*np.pi,0.001) y = np.cos(x) plt.plot(x,y,color='green') plt.title('Cos-s-subplot') plt.legend(['cos']) plt.show()

6.3 圖略,作圖位置如上面的ggplot法。

7.小結:

7.1 學習sin和cos有沒有用,當然有,在畫圓中需要sin和cos來定位圓的坐标。基礎一定要打好。

7.2 順帶複習matplotlib的相關作圖。

7.3 我自己整理好,也分享出來,值得收藏。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved