關於matplotlib的種種(中文支持,設置座標名稱、長度、範圍、字體、時間精度、百分比顯示、顏色,圖片保存、大小設置)(持續更新)

ps:畫完圖後要用plt.show()纔會顯示出圖來哦!

1.中文和負號支持

 # 用來正常顯示負號
plt.rcParams['axes.unicode_minus']=False
# 用來正常顯示中文標籤
plt.rcParams['font.sans-serif'] = ['SimHei']
# 用來正常顯示負號
plt.rcParams['axes.unicode_minus'] = False

2.設置圖標題和x,y軸的座標名稱

plt.title("我是標題")
plt.xlabel("我是橫座標")
plt.ylabel("我是縱座標")

3.設置x,y軸的長度,範圍

#設置座標範圍axis([xmin,xmax,ymin,ymax])
plt.axis([0, 6, -1, 1])
#設置橫座標長度
plt.xlim(0, 5)
#設置縱座標長度
plt.ylim(0,1)

4.簡單的示例

x = np.arange(1,len(df.size())+1)
y = df.size()
plt.plot(x,y)

5.設置圖片的顯示大小以及保存圖片

a.plot()
.......
plt.rcParams['savefig.dpi'] = 300 #圖片像素
plt.rcParams['figure.dpi'] = 300 #分辨率
# 默認的像素:[6.0,4.0],分辨率爲100,圖片尺寸爲 600&400
# 指定dpi=200,圖片尺寸爲 1200*800
# 指定dpi=300,圖片尺寸爲 1800*1200
plt.savefig("./my_picture.png",dpi=300)
#保存圖片
......
plt.show()

6.座標軸設置

#設置座標軸的刻度垂直顯示,並設置字體大小爲4
plt.xticks(rotation='vertical',fontsize=4)

7.設置座標軸旋轉角度(逆時針)

#x軸逆時針旋轉90度
plt.xticks(rotation=90)
#若爲負數,則是順時針旋轉

7.設置橫座標顯示時間的刻度範圍

import matplotlib.dates as mdates
...
#設置橫座標顯示時間的刻度範圍
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%H:%M:%S'))

8.設置橫縱座標顯示數值爲百分比

from matplotlib.ticker import FuncFormatter
def to_percent(temp, position):
    return '%.2f'%(temp) + '%'
...
#設置橫座標
plt.gca().xaxis.set_major_formatter(FuncFormatter(to_percent))
#設置縱座標
plt.gca().yaxis.set_major_formatter(FuncFormatter(to_percent))

8.顯示線的名稱

#顯示線的名稱,並且位置自由放置
plt.legend(('label', 'label if > 0.5', 'label if < -0.5'), loc='best')

9.設置圖的顏色和名稱

#設置爲紅色和“line1”的名稱,可通過上面的方法顯示
plt.plot(x, y, color='red', label='line 1')

10.設置畫布大小

plt.figure(figsize=(6,8))
# 表示figure 的大小爲寬、長(單位爲inch)

11.繪製子圖

plt.subplot(121)
# 表示整個figure分成1行2列,共2個子圖,這裏子圖在第一行第一列
plt.subplot(122)
# 表示子圖在第一行第二列
示例:

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 100)
#作圖1
plt.subplot(221)
plt.plot(x, x)
#作圖2
plt.subplot(222)
plt.plot(x, -x)
#作圖3
plt.subplot(223)
plt.plot(x, x ** 2)
plt.grid(color='r', linestyle='--', linewidth=1,alpha=0.3)
#作圖4
plt.subplot(224)
plt.plot(x, np.log(x))
plt.show()

12.創建自定義圖像

fig=plt.figure(figsize=(4,3),facecolor='blue')
plt.show()

1.figure語法及操作

(1)figure語法說明

figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)

num:圖像編號或名稱,數字爲編號 ,字符串爲名稱
figsize:指定figure的寬和高,單位爲英寸;
dpi參數指定繪圖對象的分辨率,即每英寸多少個像素,缺省值爲80      1英寸等於2.5cm,A4紙是 21*30cm的紙張 
facecolor:背景顏色
edgecolor:邊框顏色
frameon:是否顯示邊框

13.創建子圖補充(11)

x = [1.0, 2.0, 3.0]
y = [3.0, 6.0, 5.0]
fig = plt.figure()
ax = fig.add_subplot(348)
# 參數349的意思是:將畫布分割成3行4列,圖像畫在從左到右從上到下的第8塊
# 如果是第10塊,要寫成(3,4,10)這種形式
ax.plot(x,y)
plt.show()

用例1:

import matplotlib as mpl
import matplotlib.pyplot as plt
plt.rc('figure',figsize=(9,7)) # 統一修改figure畫布大小
import datetime
import matplotlib.dates as mdates
plt.rcParams['font.sans-serif']=['SimHei'] # 用來正常顯示中文標籤
plt.rcParams['axes.unicode_minus']= False # 用來正常顯示負號

fig  = plt.figure() #創建自定義圖像
ax = fig.add_subplot(1,1,1)
ax.set_title(u"C盤已使用空間的時序圖")
ax.set(xlabel=u'日期',ylabel=u'磁盤使用大小')
# 圖上時間間隔顯示爲10天
ax.xaxis.set_major_locator(mdates.DayLocator(bymonthday=range(1,32), interval=10)) 
ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m-%d"))
plt.subplots_adjust(bottom=0.13,top=0.95)
ax.plot(d['COLLECTTIME'],d['VALUE'],'ro-',)

fig.autofmt_xdate() #自動根據標籤長度進行旋轉
plt.savefig('c.jpg')
plt.show()

在這裏插入圖片描述

14.快速畫圖

fig = plt.figure(figsize=(10,8)).add_subplot(111).plot(df[x], df[y])
plt.show()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章