pandas畫圖-【老魚學pandas】


本節主要講述如何把pandas中的數據用圖表的方式顯示在屏幕上,有點類似在excel中顯示圖表。

安裝matplotlib

為了能夠顯示圖表,首先需要安裝matplotlib庫,安裝方法如下:

pip3 install matplotlib

顯示圖表

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 產生1000個隨機數
data = pd.Series(np.random.rand(1000))
# 畫圖表
data.plot()
# 顯示圖表
plt.show()

在上面的代碼中,我們首先創建1000個隨機數序列點,然后對這1000個點進行畫圖表,最后調用plt.show()顯示圖表。

顯示的結果為:

在matplotlib中,如果想要顯示圖表,需要使用plt.plot()函數,但在pandas中,我們只要對序列數據調用plot()函數就能顯示其所擁有的數據,是不是很簡單。

顯示矩陣數據

顯示矩陣中的數據,就會把每列當做一個數據序列進行顯示,例如:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 產生1000個4列正態分布的隨機數
data = pd.DataFrame(np.random.randn(1000, 4))
# 對其中的數據進行累加,目的是為了能夠使例子中顯示的曲線有上升波動效果
data = data.cumsum()
# 打印出前幾行的數據,方便我們調試其中的數據值
print(data.head())
# 畫圖表
data.plot()
# 顯示圖表
plt.show()

其中顯示的頭幾行數據值為:

          0         1         2         3
0  0.596323  0.195563  0.037300  0.900385
1  0.186813  2.217155  0.516096  0.623348
2  1.147338  2.362926  2.597531  0.960079
3  1.571033  2.910459  0.947950  0.609487
4  1.783988  3.702685 -0.358119  2.341726

顯示的圖表為:

還是挺漂亮的圖表,有點像股市走勢圖。:)
只是其中的0,1,2,3這幾個列名不大好看,我們可以修改產生數據集中的列名,這樣,在顯示圖表時就能按照數據集中的列名進行顯示了。
比如,我們想修改數據集中的列名顯示為A、B、C、D:

data = pd.DataFrame(np.random.randn(1000, 4), columns=list("ABCD"))

這樣顯示為:

顯示散點圖

可以用scatter()函數來顯示散點圖,但其使用方式跟顯示圖表的有點不一樣,主要是此函數是在plot屬性中的方法,需要注意一下:

data.plot.scatter(x='A', y='B')

完整的代碼為:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 產生1000個4列正態分布的隨機數
data = pd.DataFrame(np.random.randn(1000, 4), columns=list("ABCD"))
# 打印出前幾行的數據,方便我們調試其中的數據值
print(data.head())
# 顯示散點圖
data.plot.scatter(x='A', y='B')
# 顯示圖
plt.show()

顯示圖為:

在scatter函數中還可以添加額外的屬性,比如可以通過color來指定顏色,通過label來指定標簽,我們來看一下:

data.plot.scatter(x='A', y='B', color='DarkBlue', label="Class 1")

顯示的圖為:

如果我們想要在一張圖中再畫一下另一個散點圖,比如,在上面這個例子中,我們已經顯示了橫坐標是A縱坐標是B的散點圖,現在我們還想把橫坐標是A,縱坐標是C的數據也顯示在其中,該怎么進行呢?

# 顯示散點圖
pic1 = data.plot.scatter(x='A', y='B', color='DarkBlue', label="Class 1")
data.plot.scatter(x='A', y='C', color='DarkGreen', label='Class2', ax=pic1)
# 顯示圖
plt.show()

圖片顯示為:

更多圖形

更多的圖形還有:條形圖, 直方圖, 盒須圖, 餅圖等,相應的函數名有:bar, hist, box, kde, area, hexbin, pie等(前面不是一一對應的,有興趣的讀者可以自己去試試看。)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM