Python中matplotlib框架
畫sin(x)和cos(x)的圖像:
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,2*np.pi,100)
y1,y2=np.sin(x),np.cos(x)
plt.title('sin&cos')
plt.xlabel('x')
plt.ylabel('y')
plt.plot(x,y1)
plt.plot(x,y2)
plt.show()
執行程序結果:
畫條形圖:
#畫條形圖
import matplotlib.pyplot as plt
import numpy as np
name_list=['A','B','C','D']
num_list=[1.5,0.6,7.8,6]
plt.bar(range(len(name_list)),num_list,color='rgb',tick_label=name_list)
plt.show()
執行程序:
畫堆疊柱狀圖:
#堆疊柱狀圖
import matplotlib.pyplot as plt
import numpy as np
name_list=['A','B','C','D']
num_list=[1.5,0.6,7.8,6]
num_list1=[1,2,3,1]
plt.bar(range(len(name_list)),num_list,label='boy',fc='b')
plt.bar(range(len(name_list)),num_list1,label='girl',fc='r')
plt.legend()
plt.show()
執行程序:
並列柱狀圖:
#並列柱狀圖
import matplotlib.pyplot as plt
import numpy as np
name_list=['A','B','C','D']
num_list=[1.5,0.6,7.8,6]
num_list1=[1,2,3,1]
x=list(range(len(name_list)))
total_width,n=0.8,2
width=total_width/n
plt.bar(x,num_list,width=width,label='boy',fc='b')
for i in range(len(x)):
x[i]+=width
plt.bar(x,num_list1,width=width,label='girl',fc='r')
plt.legend()
plt.show()
程序運行結果:
餅狀圖:
#餅狀圖
import matplotlib.pyplot as plt
import numpy as np
labels='A','B','C','D'
faces=[15,30.55,44.44,10]
explode=[0,0.1,0,0]#凸顯部分數據
plt.axes(aspect=1)
plt.pie(x=faces,labels=labels,explode=explode,autopct='%3.1f%%',shadow=True,startangle=90)
plt.show()
程序運行結果:
實時畫圖:
#實時圖
import matplotlib.pyplot as plt
import numpy as np
ax=[]
ay=[]
plt.ion()
for i in range(100):
ax.append(i)
ay.append(i**2)
plt.clf() #清除
plt.plot(ax,ay)
plt.pause(1)
plt.ioff()#資源釋放
程序執行結果:
畫三維圖像:
#畫三維圖像
import matplotlib.pyplot as plt
import numpy as np
#引入3D座標軸
from mpl_toolkits.mplot3d import Axes3D
x=np.random.normal(0,1,100)
y=np.random.normal(0,1,100)
z=np.random.normal(0,1,100)
fig=plt.figure()
ax=Axes3D(fig)
ax.scatter(x,y,z)
plt.show()
執行程序效果: