玩轉(zhuǎn)可視化繪圖 :matplotlib簡(jiǎn)單繪圖練習(xí)

matolotlib 基本圖形繪制

from pandas import Series,DataFrame
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

下面先做兩個(gè)例子繪折線圖

Series生成圖表

ts=Series(np.random.randn(120),index=pd.date_range('1/1/2018',periods=120))
ts=ts.cumsum()  
ts.head()
    2018-01-01    0.732337
    2018-01-02    1.222352
    2018-01-03    0.460722
    2018-01-04    0.694276
    2018-01-05    0.394703
    Freq: D, dtype: float64

ts.plot(kind='line',
       title='2018 time',
       label='2018',
       style='--g',
       color='red',
       alpha=0.5,
       grid=True,
       rot=60,
       ylim=[-30,50],
       yticks=list(range(-20,50,5)),
       use_index=True,
       figsize=(8,5),
       legend=True)
image

DataFrame生成圖表

df=DataFrame(np.random.randn(120,4),index=pd.date_range('1/1/2018',periods=120),columns=list('ABCD'))
df=df.cumsum()
df.head()  #查看前五行數(shù)據(jù)
df.plot(kind='line',
       title='2018 time',
       label='2018',
       style='--',
       alpha=0.5,
       grid=True,
       rot=60,
       use_index=True,
       figsize=(15,8),
       fontsize='large',
       legend=True,
       subplots=False) 
image

繪圖標(biāo)簽總結(jié):

#Series.plot() series的index為橫坐標(biāo),value為縱坐標(biāo)
#figsize:圖像大小標(biāo)簽
#title:圖像標(biāo)題名稱
#kind:line,bar 折線圖式矫、柱狀圖等形狀設(shè)定
#label:為圖例標(biāo)簽,DataFrame是列名為label圖例標(biāo)簽
#style:風(fēng)格字符串 包括linestyle,narker,color
#color:顏色
#alpha:透明度
#grid:圖表網(wǎng)格
#xlim 、ylim:x,y軸界限
#xticks,yticks:x,y刻度值
#legend:是否顯示圖例 使用plt.legend

下面練習(xí)簡(jiǎn)單的圖形繪制

1. 柱狀圖與 堆疊圖

fig,axes=plt.subplots(4,1,figsize=(10,15)) #創(chuàng)建四個(gè)子圖
df1=Series(np.random.randint(0,10,16),index=list('abcdefghijklmnop'))
df2=DataFrame(np.random.rand(10,3),columns=['a','b','c'])

#單系列圖
df1.plot(kind='bar',grid=True,alpha=0.6,ax=axes[0])  #選擇第一個(gè)子圖

#多系列圖
df2.plot(kind='bar',alpha=0.5,ax=axes[1]) #選擇第二個(gè)子圖

#多系列圖和堆疊圖
df2.plot(kind='bar',colormap='Blues_r',edgecolor='green',stacked=True,ax=axes[2])#選擇第三個(gè)子圖

df2.plot.barh(ax=axes[3])
柱狀圖

2. 面積圖

fig,axes=plt.subplots(2,1,figsize=(8,6))
df3=DataFrame(np.random.rand(10,4),columns=['a','b','c','d'])  #正值的數(shù)據(jù)
df4=DataFrame(np.random.randn(10,4),columns=['a','b','c','d'])  #正值和負(fù)值都有的數(shù)據(jù)

df3.plot.area(alpha=0.5,ax=axes[0],colormap='Greens_r')
df4.plot.area(stacked=False,colormap='Set2',alpha=0.5,ax=axes[1])

#stacked 是否堆疊储笑,默認(rèn)區(qū)域圖是堆疊
#為了產(chǎn)生堆積面積圖码耐,每列需要是全部正值或者是全部是負(fù)值
#當(dāng)數(shù)據(jù)有缺失na值時(shí)倾剿,會(huì)自動(dòng)填充為0
面積圖

3. 填充圖

fig,axes=plt.subplots(2,1,figsize=(8,6))
x=np.linspace(0,5*np.pi,1000)
y1=np.sin(x)
y2=np.sin(2*x)
axes[0].fill_between(x,y1,y2,color='g',alpha=0.5,label='area') #填充
axes[0].grid()

x2=np.arange(0.0,4.0*np.pi,0.01)
y2=np.sin(x2)
axes[1].plot(x2, y2)
axes[1].plot((x2.min(),x2.max()), (0,0)) #水平基準(zhǔn)線
axes[1].fill_between(x2,y2,color='r',alpha=0.5)  #填充 
axes[1].grid()
填充圖

4. 餅圖

s=Series(2*np.random.rand(4),index=['a','b','c','d'],name='series')
plt.axis('equal') #讓圖形的長(zhǎng)和寬相等
plt.pie(s,colors=['r','g','b','y'],
        explode=[0.1,0,0,0],  #每部分的偏移量
        labels=s.index,
        autopct='%.2f%%',  # 餅圖上的數(shù)據(jù)標(biāo)簽顯示方式
        labeldistance=1.2, # 畫餅標(biāo)記的直徑  默認(rèn)1.1
        pctdistance=0.8,   # 每個(gè)切片的中心和通過autopct生成的文本開始之間的比例
        shadow=True,   #陰影
        startangle=0,   #開始角度
        radius=1.5,     #半徑
        frame=False)

print(s)
a    0.435720
b    0.888153
c    1.066442
d    1.867224
Name: series, dtype: float64
餅圖

5. 直方圖和密度圖

s1=Series(np.random.randn(1000))
s1.hist(bins=20,             #箱子寬度
      histtype='bar',        #風(fēng)格 bar 艘刚,step
      align='mid',           #對(duì)齊方式 left  mid right 
      orientation='vertical',#水平還是垂直 horizontal ,vertical
      normed=True,       #標(biāo)準(zhǔn)化
       alpha=0.5)

#密度圖
s1.plot(kind='kde',style='k--',grid=True)   #密度圖時(shí)候    normed=True,  
直方圖和密度圖

6. 散點(diǎn)圖

plt.figure(figsize=(8,6))
x=2*np.random.randn(1000)
y=np.random.randn(1000)
plt.scatter(x,y,marker='.',
           s=np.random.randn(1000)*100,   #散點(diǎn)大小
           alpha=0.5,
            c=np.random.randn(1000)*100,  #散點(diǎn)顏色
           cmap='Reds')
plt.grid()
散點(diǎn)圖

7. 矩陣散點(diǎn)圖

ddf=DataFrame(np.random.randn(100,4),columns=['a','b','c','d'])
pd.plotting.scatter_matrix(ddf,figsize=(10,6),
                           marker='o',
                           diagonal='kde',#只能并且在 hist和kde 中選擇一個(gè)张肾,每個(gè)指標(biāo)的頻率圖
                           range_padding=0.1, #圖形在x軸和y軸原點(diǎn)的留白
                           alpha=0.6)
散點(diǎn)矩陣圖

8. 極坐標(biāo)圖

##創(chuàng)建數(shù)據(jù)
s= Series(np.arange(20))
theta=np.arange(0,2*np.pi,0.02)
#print(s.head())
#print(theta[:60])

#創(chuàng)建子坐標(biāo)
fig=plt.figure(figsize=(8,4))
ax1=plt.subplot(121,projection='polar')
ax2=plt.subplot(122,projection='polar')

#也可以這樣創(chuàng)建ax=fig.add_subplot(111,polar=True)

ax1.plot(theta,theta/6,linestyle='--',lw=2)  #lw為線寬
#ax1.plot(s,linestyle='--',marker='.',lw=2)
ax2.plot(theta,theta/6,linestyle='--',lw=2)

#參數(shù)設(shè)定比較

#坐標(biāo)軸正方向芭析,默認(rèn)逆時(shí)針方向
ax2.set_theta_direction(-1) 

#設(shè)置極坐標(biāo)角度網(wǎng)格線顯示和標(biāo)簽 ,其中網(wǎng)格和標(biāo)簽數(shù)量一致
ax2.set_thetagrids(np.arange(0.0,360.0,90),['a','b','c','d'])

#設(shè)置網(wǎng)格線顯示吞瞪,參數(shù)必須為正數(shù)
ax2.set_rgrids(np.arange(0.2,2,0.2))

#設(shè)置角度偏移馁启,逆時(shí)針  弧度
ax2.set_theta_offset(np.pi/2)

#設(shè)置極坐標(biāo)半徑范圍
ax2.set_rlim(0.2,1.8)

ax2.set_rmax(2) #極坐標(biāo)半徑的最大值

ax2.set_rticks(np.arange(0.1,1.5,0.2)) #極坐標(biāo)半徑網(wǎng)格線的顯示范圍
極坐標(biāo)圖

9. 箱線圖

fig,axes=plt.subplots(2,1,figsize=(10,6))
dff=DataFrame(np.random.rand(10,5),columns=['A','B','C','D','E'])
color=dict(boxes='DarkGreen',whiskers='DarkOrange',medians='DarkBlue',caps='Gray')

#boxes 箱線顏色
#whiskers 分位數(shù)與error bar橫線之間豎線的顏色
#medians 中位數(shù)線顏色
#caps  橫線顏色
dff.plot.box(ylim=[0,1.2],
            grid=True,
            color=color,
            ax=axes[0])

dff.plot.box(vert=False,        #vert 默認(rèn)垂直,是否垂直
             positions=[1,4,9,8,6], #箱線圖占位
            grid=True,
            color=color,
            ax=axes[1])
箱線圖

另外還有其他比較復(fù)雜的圖形繪制和繪圖參數(shù)的知識(shí)需要花時(shí)間熟悉進(jìn)行學(xué)習(xí)芍秆,可以在matplotlib官網(wǎng)進(jìn)行學(xué)習(xí)惯疙。

matplotlib官網(wǎng)網(wǎng)址:https://matplotlib.org/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市妖啥,隨后出現(xiàn)的幾起案子螟碎,更是在濱河造成了極大的恐慌,老刑警劉巖迹栓,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掉分,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡克伊,警方通過查閱死者的電腦和手機(jī)酥郭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來愿吹,“玉大人不从,你說我怎么就攤上這事±绻颍” “怎么了椿息?”我有些...
    開封第一講書人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)坷衍。 經(jīng)常有香客問我寝优,道長(zhǎng),這世上最難降的妖魔是什么枫耳? 我笑而不...
    開封第一講書人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任乏矾,我火速辦了婚禮,結(jié)果婚禮上迁杨,老公的妹妹穿的比我還像新娘钻心。我一直安慰自己,他們只是感情好铅协,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開白布捷沸。 她就那樣靜靜地躺著,像睡著了一般狐史。 火紅的嫁衣襯著肌膚如雪痒给。 梳的紋絲不亂的頭發(fā)上坯钦,一...
    開封第一講書人閱讀 49,730評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音侈玄,去河邊找鬼婉刀。 笑死,一個(gè)胖子當(dāng)著我的面吹牛序仙,可吹牛的內(nèi)容都是我干的突颊。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼潘悼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼律秃!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起治唤,我...
    開封第一講書人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤棒动,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后宾添,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體船惨,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年缕陕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了粱锐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡扛邑,死狀恐怖怜浅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蔬崩,我是刑警寧澤恶座,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站沥阳,受9級(jí)特大地震影響跨琳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜沪袭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一湾宙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧冈绊,春花似錦、人聲如沸埠啃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碴开。三九已至毅该,卻和暖如春博秫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背眶掌。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工挡育, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人朴爬。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓即寒,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親召噩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子母赵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容