本節主要講述如何把pandas中的數據用圖表的方式顯示在屏幕上,有點相似在excel中顯示圖表。python
爲了可以顯示圖表,首先須要安裝matplotlib庫,安裝方法以下:dom
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()函數就能顯示其所擁有的數據,是否是很簡單。excel
顯示矩陣中的數據,就會把每列當作一個數據序列進行顯示,例如:code
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()
其中顯示的頭幾行數據值爲:blog
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:ip
data = pd.DataFrame(np.random.randn(1000, 4), columns=list("ABCD"))
這樣顯示爲:
pandas
能夠用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等(前面不是一一對應的,有興趣的讀者能夠本身去試試看。)