簡單使用matplotlib繪圖

創建空白畫板

創建空白畫板,暫時沒有數據:

import matplotlib.pyplot as plt
import numpy as np
# 繪製子圖
fig = plt.figure(figsize=(10,6.18))
plt.plot()
plt.show()

圖示:
在這裏插入圖片描述

繪製一條線的圖

創建畫板,然後生成1到10之間的10個數字,然後取3的餘數。

import matplotlib.pyplot as plt
import numpy as np
# 繪製子圖
fig = plt.figure(figsize=(10,6.18))
data = np.linspace(1,10,10)

plt.plot(data,data%3)
plt.show()

圖示:
在這裏插入圖片描述

給圖添加座標系等註釋信息

添加座標系的解釋,和圖的信息

import matplotlib.pyplot as plt
import numpy as np
# 繪製子圖
fig = plt.figure(figsize=(10,6.18))
data = np.linspace(1,10,10)

plt.plot(data,data%3,label=" test legend")
plt.title("data test")
plt.xlabel("this is x")
plt.ylabel("this is y")
plt.legend()
plt.show()

圖示:
在這裏插入圖片描述

增加多條線

另外增加兩條直線,到同一個畫中。

import matplotlib.pyplot as plt
import numpy as np
# 繪製子圖
fig = plt.figure(figsize=(10,6.18))
data = np.linspace(1,10,10)

plt.plot(data,data%3,label=" test legend:  data%3 ")
plt.plot(data,data/3,label=" test legend:  data/3 ")
plt.plot(data,data/3-1,label=" test legend:  data/3-1 ")
plt.title("data test")
plt.xlabel("this is x")
plt.ylabel("this is y")
plt.legend()
plt.show()

在這裏插入圖片描述

繪製子圖

將上面的三條線拆分成爲三個圖。

import matplotlib.pyplot as plt
import numpy as np
# 繪製子圖
fig = plt.figure(figsize=(10,6.18))
data = np.linspace(1,10,10)
def set_xy():
    plt.title("data test")
    plt.xlabel("this is x")
    plt.ylabel("this is y")
    plt.legend()
# 指定位置,設定子圖二維座標,五行一列總共5個子圖。  下面三個子圖只取第一,三,五這三個位置
plt.subplot(5,1,1)
#下面這個新加的’r' 意思爲red,將線條顯示爲紅色
plt.plot(data,data%3,'r',label=" test legend:  data%3 ")
set_xy()
plt.subplot(5,1,3)
plt.plot(data,data/3,'g',label=" test legend:  data/3 ")
set_xy()
plt.subplot(5,1,5)
plt.plot(data,data/3-1,'m',label=" test legend:  data/3-1 ")
set_xy()
plt.show()

圖示:
在這裏插入圖片描述
解釋一下subplot的功能:
子圖將當前數字劃分爲按行編號的矩形窗格。 每個窗格都包含一個軸對象,您可以使用軸屬性來操作它們。 隨後的圖被輸出到當前窗格。
h =subplot(m,n,p)
m 代表行
 n 代表列
 p 代表的這個圖形畫在第幾行、第幾列。

subplot的使用方法:
h =subplot(m,n,p)
將數字窗口分成m×n的網格,
並在當前圖的第p個位置創建一個軸對象,並返回軸句柄。
座標軸沿着圖形窗口的第一行,然後是第二行等。

例如 subplot(2,2,1)
  表示一個2行2列的畫布上,你用第一行第一列畫圖。
  如圖:(直接拿百度經驗的圖和解釋)
  地址:https://jingyan.baidu.com/article/915fc414ad794b51394b20e1.html
在這裏插入圖片描述

常用圖繪製之散點圖

喜歡自定義繪圖就直接使用matplotlib,但是參數設置過多,需要大量時間來熟悉。爲了方便可以採取基於matplotlib API封裝的第三方python庫seaborn,更方便的繪製漂亮的常用圖形。

下面在1到10之間生產100個連續間隔相同的數據作爲x座標,然後給這100個數據隨機生成符合標準正態分佈的數據。總共組成100個點。

import matplotlib.pyplot as plt
import numpy as np
# 繪製子圖
fig = plt.figure(figsize=(10,6.18))
data = np.linspace(1,10,500)
plt.scatter(data,np.random.randn(500),s=10,color='b')
plt.legend()
plt.show()

圖示:
在這裏插入圖片描述
重要數據加大字體和其他顏色顯示出來

import matplotlib.pyplot as plt
import numpy as np
# 繪製子圖
fig = plt.figure(figsize=(10,6.18))
data = np.linspace(1,10,500)
plt.scatter(data,np.random.randn(500),s=10,color='b',alpha=0.65,label='data')
plt.scatter(3,1.3,s=50,color="r",alpha=1,label="red ")
plt.scatter(2,-2.3,s=50,color="g",alpha=1,label = 'green')
plt.legend()
plt.show()

圖示:
在這裏插入圖片描述

常用圖繪製之條形圖

準備一個數據文件:data.csv

date,score
2012-01-01,0.08
2012-02-01,0.1
2012-03-01,0.13
2012-04-01,0.14
2012-05-01,0.16
2012-06-01,0.16
2012-07-01,0.16
2012-08-01,0.13
2012-09-01,0.14
2012-10-01,0.16
2012-11-01,0.16
2012-12-01,0.16

順便把條形圖的數值加上:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 繪製子圖
fig = plt.figure(figsize=(10,6.18))
#解決中文顯示問題
plt.rcParams['font.sans-serif'] = ['KaiTi'] # 指定默認字體
plt.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負號'-'顯示爲方塊的問題
df = pd.read_csv("date.csv")
print(df)
#將DataFrame對象轉換成列表
df = df.values
for x,y in df:
    #alpha 透明度
    plt.bar(x,y,color='g',align='center' ,alpha=0.3 )
    plt.text(x,y,y,color='b',ha='center', va= 'bottom',fontsize=12)
plt.title("數據條形圖")
plt.legend()
plt.show()

在這裏插入圖片描述
座標系重疊,可以把x軸數據旋轉325度
plt.xticks(rotation=325)

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 繪製子圖
fig = plt.figure(figsize=(10,6.18))
#解決中文顯示問題
plt.rcParams['font.sans-serif'] = ['KaiTi'] # 指定默認字體
plt.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負號'-'顯示爲方塊的問題
df = pd.read_csv("date.csv")
print(df)
#將DataFrame對象轉換成列表
df = df.values
for x,y in df:
    #alpha 透明度
    plt.bar(x,y,color='g',align='center' ,alpha=0.3 )
    plt.text(x,y,y,color='b',ha='center', va= 'bottom',fontsize=12)
plt.title("數據條形圖")
plt.xticks(rotation=325)
plt.legend()
plt.show()

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章