pandas 知识点补充:绘图plot
1 plot介紹
????????使用DataFrame的plot方法繪制圖像會按照數據的每一列繪制一條曲線,默認按照列columns的名稱在適當的位置展示圖例,比matplotlib繪制節省時間,且DataFrame格式的數據更規范,方便向量化及計算。
DataFrame.plot(x=None, y=None, kind='line', ax=None, subplots=False, sharex=None, sharey=False, layout=None, figsize=None, use_index=True, title=None, grid=None, legend=True, style=None, logx=False, logy=False, loglog=False, xticks=None, yticks=None, xlim=None, ylim=None, rot=None, fontsize=None, colormap=None, position=0.5, table=False, yerr=None, xerr=None, stacked=True/False, sort_columns=False, secondary_y=False, mark_right=True, **kwds)?2 主要參數
kind? | 繪圖類型 | ‘line’ | 折線圖 |
| ‘bar’ | 條形圖。 stacked為True時為堆疊的柱狀圖 | ||
| ‘barh’? | 橫向條形圖 | ||
| ‘hist’ | 直方圖(數值頻率分布) | ||
| ‘box’? | 箱型圖 | ||
| ‘kde’ | Kernel Density Estimation plot 密度圖,主要對柱狀圖添加Kernel 概率密度線 | ||
| ‘area’? | 與x軸所圍區域圖(面積圖)。 Stacked=True時,每列必須全部為正或負值, stacked=False時,對數據沒有要求 | ||
| ‘pie’ | 餅圖。 數值必須為正值,需指定Y軸或者subplots=True | ||
| ‘scatter’? | 散點圖。需指定X軸Y軸 | ||
| ‘hexbin’? | 蜂巢圖。需指定X軸Y軸 | ||
subplots? | ?boolean default False 是否對列分別作子圖 | ||
grid | 圖片是否有網格 | ||
legend | 子圖的圖例 (默認為True) | ||
logx? | 設置x軸刻度是否取對數 | ||
logy? | 設置y軸刻度是否取對數 | ||
loglog | 同時設置x,y軸刻度是否取對數 | ||
xlim&ylim | 設置坐標軸的范圍。 數值(最小值)或元組(區間范圍) | ||
fontsize | 設置軸刻度的字體大小 | ||
colormap | 設置圖的區域顏色 | ||
colorbar | 柱子顏色 | ||
secondary_y? | ?boolean or sequence, default False? 設置第二個y軸(右輔助y軸) | ||
?2.1 其他需要注意的地方
2.1.1 設置X、Y軸名稱
ax.set_ylabel('yyy')
ax.set_xlabel('xxx')
2.1.2 plt.legend(loc='best')
- loc:圖列位置
2.1.3每種繪圖類型都有相對應的方法。
比如,?df.plot(kind='line')與df.plot.line()等價
2.1.4 畫圖步驟
1)首先定義畫圖的畫布:fig = plt.figure( )
2)然后定義子圖ax ,使用 ax= fig.add_subplot( 行,列,位置標)
3)用 ax.plot( )函數或者 df.plot(ax = ax)
4)結尾加plt.show()
3 畫圖舉例
3.0 直接做圖
每一列一條線
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000)) # ts = ts.cumsum()df =pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list('ABCD')) df = df.cumsum()df.plot()#每一列一條線?
?
3.1 主副軸
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))df =pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list('ABCD')) df = df.cumsum()#A圖用左Y軸標注,B圖用右Y軸標注,二者共用一個X軸df.A.plot()#對A列作圖,同理可對行做圖df.B.plot(secondary_y=True, style='g')#設置第二個y軸(右y軸)?3.1.1 主副軸分別設置標簽位置
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))df =pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list('ABCD')) df = df.cumsum()ax = df.plot(secondary_y=['A', 'B']) # 定義column A B使用右Y軸。ax.set_ylabel('CD scale')ax.right_ax.set_ylabel('AB scale')ax.legend(loc='upper left') #設置圖例的位置ax.right_ax.legend(loc='upper right') #分別設置主副軸的位置和標題plt.show()?
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的pandas 知识点补充:绘图plot的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pandas 补充知识:data_ran
- 下一篇: python笔记:load_ext au