pandas畫圖-【老魚學pandas】

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

安裝matplotlib

爲了可以顯示圖表,首先須要安裝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等(前面不是一一對應的,有興趣的讀者能夠本身去試試看。)

相關文章
相關標籤/搜索