1. 程式人生 > >Python matplotlib畫圖

Python matplotlib畫圖

利用Python matplotlib包來畫圖

Python matplotlib包可以畫各種型別的圖,功能非常齊全。

# 曲線圖:matplotlib.pyplot.plot
# 柱狀圖:matplotlib.pyplot.hist
# 散點圖:matplotlib.pyplot.scatter
# 箱式圖:matplotlib.pyplot.boxplot

import matplotlib as mpl
from matplotlib import pyplot as plt
import seaborn as sns
import pandas as pd

#曲線圖例項
data = pd.read_csv('/data.csv', encoding = 'gbk')		#資料中有中文字元時,讀取要加gbk
x = np.arange(30) + 1
y = data.iloc[0][1:31]
plt.plot(x,y, color = 'blue',linewidth = 1.5, linestyle = '-',marker = '.',label = 'mean')

#座標軸設定
ax = plt.subplot(111)
ax.spines['right'].set_color('none')        #去掉右邊的邊框線
ax.spines['top'].set_color('none')          #去掉上邊的邊框線

#X軸從底部向上移動
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',23))

#Y軸從左邊向右邊移動
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))

#設定橫縱座標的取值範圍
plt.xlim(x.min()*0.9, x.max()*1.1)
plt.ylim(y.min()*0.9, y.max()*1.1)

#設定橫縱座標的刻度值
plt.xticks([0,5,10,15,20,25,30],['0','5','10','15','20','25','30'])
plt.yticks([25,30,35,40,45],['25','30','35','40','45'])

#特殊點添加註解
plt.scatter([23,],[y[22],],50,color = 'blue')       #需要註解的點的位置,放大該點
plt.annotate('holiday', xy= (23,y[22]),xytext = (24,30.2), fontsize = 14, color = 'm', arrowprops = dict(arrowstyle = '->',
        connectionstyle = 'arc3, rad = 0.1',color = 'm'))       #給該點進行註解,先設定註解箭頭的位置,然後設定註解的位置

#設定標題,橫縱軸的名稱
plt.title('Title', fontsize = 12)
plt.xlabel('Time',fontsize = 12, labelpad = 6)
plt.ylabel('Numble',fontsize = 12, labelpad = 6)

#設定圖例及位置
plt.legend(loc = 'best')

#顯示網格線
plt.grid(True)

plt.show()

#柱狀圖
# x = np.random.normal(size=1000)
# plt.hist(x, bins=10)        #bins設定柱狀圖中柱的數量
# plt.show()

#散點圖
# x = np.random.normal(size=1000)
# y = np.random.normal(size=1000)
# plt.scatter(x,y)
# plt.show()

#箱式圖
# x = np.random.normal(size=1000)
# plt.boxplot(x)      #分佈情況,異常點等
# plt.show()

根據自己的需求更改設定,不需要的可以去掉。