Python 資料分析Matplotlib入門
1.簡單繪圖
讓影象顯示出來的方法:
方法一:
plt.plot(a,b)
plt.show()
方法二:
%matplotlib inline
plt.plot(a, b)
# %timeit 表示程式碼執行的時間
%timeit
# 第三個引數表示線段的型別,
plt.plot(a, b, '--')
plt.plot(t,s,'r--',label='aaaa')
plt.plot(t*2, s, 'b--', label='bbbb')
plt.xlabel('this is x')
plt.ylabel('this is y')
plt.title('this is a demo')
# 使用plt.legendlegend將要顯示的資訊來自於上面程式碼中的label資訊;
plt.legend()
# plt.plot()
2.subplot繪子圖
# subplot的引數的意思是2行2列,位置是1的subplor子圖
plt.subplot(221)
plt.plot(x, y1, 'b--')
plt.ylabel('y1')
# 設定2行2列的第二個子圖
plt.subplot(222)
plt.plot(x, y2, 'r--')
plt.ylabel('y2')
plt.xlabel('x')
# 設定2行2列的第三個子圖
plt.subplot(223)
plt.plot(x, y1, 'r*')
plt.subplot(224)
plt.plot(x, y1, 'b*')
plt.show()
# 由plt.subplots返回的是一個元組;
# 元組的第一個元素表示畫布;
# 第二個元素表示畫圖
# subplots的引數表示將畫布分成幾行幾列
figure, ax = plt.subplots(2,2)
ax[0][0].plot(x, y1)
ax[0][1].plot(x, y2)
plt.show()
3.Pandas繪圖之Series
#先構造Series的資料
# cumsum用法(求累計次數)
s1 = Series(np.random.randn(1000)).cumsum()
s2 = Series(np.random.randn(1000)).cumsum()
# grid引數是方格,
s1.plot(kind='line',grid=True, label='S1', title='This is Series')
s2.plot(label='S2')
plt.legend()
plt.show()
# 分成兩行一列的子圖
fig, ax = plt.subplots(2,1)
ax[0].plot(s1)
ax[1].plot(s2)
plt.show()
fig, ax = plt.subplots(2,1)
s1[0:10].plot(ax=ax[0], label='S1', kind='bar')
s2.plot(ax=ax[1], label='S2')
plt.show()
4.Dataframe畫圖與Series類似
df = DataFrame(
np.random.randint(1,10,40).reshape(10,4),
columns=['A','B','C','D']
)
# bar的意思是直方圖,kind是線型圖
df.plot(kind='bar')
plt.show()
5.matplotlib裡的直方圖和密度圖
直方圖:
s = Series(np.random.randn(1000))
plt.hist(s, rwidth=0.9)
密度圖:
s.plot(kind='kde')
plt.show()