今天來(lái)聊聊 Pandas 的幾種繪圖方式。
在畫餅圖的時(shí)候可以使用DataFrame.plot.pie()或Series.plot.pie()創(chuàng)建餅圖。如果您的數(shù)據(jù)包含任何NaN,它們將被自動(dòng)填充為0, 如果數(shù)據(jù)中有任何負(fù)值,將引發(fā)ValueError。 畫餅圖詳細(xì)代碼如下:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
def craw_pie():
series = pd.Series(3 * np.random.rand(4), index=['1', '2', '3', '4'], name='series')
series.plot.pie(figsize=(6, 6));
plt.show()
if __name__ == '__main__':
craw_pie()
顯示結(jié)果如下:
對(duì)于餅狀圖,最好使用正方形圖形,即圖形長(zhǎng)寬比為1。您可以創(chuàng)建寬度和高度相等的圖形,或者通過(guò)在返回的axes對(duì)象上調(diào)用ax.set_aspect('equal')來(lái)繪制后強(qiáng)制寬高比相等。
注意: 帶DataFrame的餅圖要求您通過(guò)y參數(shù)指定目標(biāo)列,或者subplot =True。當(dāng)指定y時(shí),將繪制選定列的餅圖。如果指定subplot =True,則將每個(gè)列的餅圖繪制為子圖。默認(rèn)情況下,將在每個(gè)餅圖中繪制一個(gè)圖例; 指定legend=False來(lái)隱藏它。
例如:將每個(gè)列的餅圖繪制為子圖實(shí)例如下:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
def draw_pie1():
df = pd.DataFrame(
3 * np.random.rand(4, 2), index=['a', 'b', 'c', 'd'], columns=['x', 'y'])
df.plot.pie(subplots=True, figsize=(8, 4))
plt.show()
if __name__ == '__main__':
draw_pie1()
顯示結(jié)果圖如下:
根據(jù)上圖顯示可知,加了subplots=True
參數(shù)后,圖形顯示的顏色代表在長(zhǎng)方形圖片中已展示出來(lái)。
如果要隱藏,加legend=False
即可隱藏,實(shí)例如下:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
def draw_pie1():
df = pd.DataFrame(
3 * np.random.rand(4, 2), index=['a', 'b', 'c', 'd'], columns=['x', 'y'])
df.plot.pie(subplots=True, figsize=(8, 4), legend=False)
plt.show()
if __name__ == '__main__':
draw_pie1()
結(jié)果圖如下:
咱們?cè)诶L畫的時(shí)候也可以可以使用標(biāo)簽和顏色關(guān)鍵字來(lái)指定每個(gè)楔形的標(biāo)簽和顏色,例如:
def draw_pie2():
series = pd.Series(3 * np.random.rand(4), index=['1', '2', '3', '4'], name='series')
series.plot.pie(
labels=['A', 'B', 'C', 'D'],
colors=['r', 'g', 'b', 'c'],
autopct='%.2f',
fontsize=20,
figsize=(6, 6),)
plt.show()
if __name__ == '__main__':
draw_pie2()
展示結(jié)果如下:
如果傳遞的值的總和小于1,matplotlib會(huì)畫一個(gè)半圓。
實(shí)例如下:
def draw_pie3():
series = pd.Series([0.1] * 4, index=['a', 'b', 'c', 'd'], name='series2')
series.plot.pie(figsize=(6, 6))
plt.show()
if __name__ == '__main__':
draw_pie3()
你可以使用 pandas.plotting 繪圖板中的 scatter_matrix方法創(chuàng)建一個(gè)散點(diǎn)圖矩陣,實(shí)例如下:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pandas.plotting import scatter_matrix
def draw_pie4():
df = pd.DataFrame(np.random.randn(1000, 4), columns=['a', 'b', 'c', 'd'])
scatter_matrix(df, alpha=0.2, figsize=(6, 6), diagonal='kde')
plt.show()
if __name__ == '__main__':
draw_pie4()
顯示結(jié)果圖如下:
今天的文章就到這里啦,希望今天的文章對(duì)大家有幫助!更多關(guān)于 Pandas 繪制圖形的方法咱們下集見(jiàn)分曉,希望自己進(jìn)步的同時(shí)也對(duì)大家有更大的用處,咱們下期見(jiàn)!
覺(jué)得本文對(duì)你有幫助?請(qǐng)分享給更多人
聯(lián)系客服