python學習part 6:通過numpy和matplotlib.pyplot作圖

python學習part 6:通過numpy和matplotlib.pyplot作圖

#普通曲線圖
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-5,5,50) #隨機從-5到5之間的50個數
y1=x**3
y2=2*x+3
plt.plot(x,y1,label='y1=x**3')#label指對曲線圖或函數圖的一種表示,但需要加plt.length(),後面可見
plt.plot(x,y2,label='y2=2*x+3')
plt.xlabel('I am x')#xlable指x軸的標題
plt.ylabel('I am y')#ylable指y軸的標題
plt.title('Just do it')#大標題
plt.plot(x,y2,color='pink',linewidth=5,linestyle='--')#對線性圖像進行修飾,color,linewidth,linestyle
plt.legend()#label可見
plt.show()#顯示

#折線圖
import matplotlib.pyplot as plt
import numpy as np
y1=[1,6,18,27,7,2]#指定幾個點
x1=range(0,6)
x2=range(0,10)
y2=[0,17,5,40,30,55,75,15,50,26]
plt.plot(x2,y2,label='line1',color='g',marker='*',markerfacecolor='pink',markersize=10)#color指定顏色,marker是標誌(常用 * , ^ , _ , + )
plt.plot(x1,y1,label='line2',color='r')
plt.xlabel('I am x')
plt.ylabel('I am y')
plt.title('Slight Line')
plt.legend()
plt.show()

#子圖
t = np.linspace(-5, 5, 50)   #numpy數組生成50個數字
s1 = np.sin(np.pi*t)#np.sin指調用sin函數,pi*t指一個常量
s2 = np.sin(np.pi*t)
plt.figure(1)
plt.subplot(211) #設置子圖subplot()
plt.plot(t, s1)
plt.grid(color='r',linestyle='--',linewidth=1,alpha=1)#plt.grid指畫格子
plt.subplot(212)
plt.plot(t, s1)
plt.grid(color='r',linestyle='--',linewidth=1,alpha=0.3)
plt.show()

#餅圖
label='happy','outstanding','love','learning'#建造區域名稱
sizes=[10,50,5,35]#設置區域比例
fig1,ax1=plt.subplots()#設置子圖,一定需要兩個變量進行分割
ax1.pie(sizes,labels=label,autopct='%1.0f%%',startangle=90)#這裏是labels不是label,autopct是百分比,startangle是指初始角度
ax1.axis('equal')#相等的長寬比可以將餅圖置位圓形
plt.show()

#散點圖
x=np.random.random(30)#隨機點
y=np.random.random(30)
colors=np.random.random(30)#隨機顏色
area=(50*np.random.random(30))
plt.scatter(x,y)#必須有這句,爲了使c=color
plt.show()

#條形統計圖
y = [20, 30, 15, 35]      
x = range(len(y))      
"""
繪製條形圖
width:長條形寬度默認值0.8
"""
rects = plt.bar(x, y, width=0.4 , label="1")  
plt.xlabel("I'm X")
plt.ylabel("I'm Y")
plt.title("I'm title")
"""
設置x軸刻度顯示值
參數一:中點座標
參數二:顯示值
"""
labels = ['One', 'Two', 'Three', 'Four']    # 橫座標刻度顯示值
plt.xticks(x, labels)#label所在座標

"""
給直方圖添加數據標籤
參數一:數字說明的橫座標
參數二:數字說明的縱座標
參數三:數字顯示
參數四:垂直對齊方式
參數五:水平對齊方式
"""
for rect in rects:
    height = rect.get_height()
    plt.text(rect.get_x()+rect.get_width()/2, height, str(height), ha="center", va="top")#va可以爲top和bottom
plt.legend()   
plt.show()

附上每種圖形的效果圖
1.曲線圖
在這裏插入圖片描述
2.折線圖
在這裏插入圖片描述
3.子圖
在這裏插入圖片描述
4.餅圖
在這裏插入圖片描述
5.散點圖
在這裏插入圖片描述
6.條形圖
在這裏插入圖片描述
其中條形圖是我們常用的數據對比圖
注意:兩段條形圖的x軸座標與寬度是製作好條形對比圖的關鍵

import matplotlib.pyplot as plt
import numpy as np
y1=[20, 30, 15, 35]      
x1=[0.5,2,3.5,5]   
y2=[10, 20, 15, 25]      
x2=[1,2.5,4,5.5] 
x3=[0.75,2.25,3.75,5.25]  
rects1=plt.bar(x1,y1,width=0.5,label="1") 
rects2=plt.bar(x2,y2,width=0.5,label='2')
plt.xlabel("I'm X")
plt.ylabel("I'm Y")
plt.title("IT")
labels = ['One','Two','Three','Four']
plt.xticks(x3,labels)
for rect in rects1:
    height = rect.get_height()
    plt.text(rect.get_x()+rect.get_width()/2, height, str(height), ha="center", va="bottom")
for rect in rects2:
    height = rect.get_height()
    plt.text(rect.get_x()+rect.get_width()/2, height, str(height), ha="center", va="bottom")
plt.legend()
plt.show()

在這裏插入圖片描述
Ending!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章