使用matplotlib製作“折線圖”:pyplot.plot()/給多組數據添加解釋圖標/放大座標軸部分區間

之前的文章是《入門操作:創建畫布/調整子圖/創建“AXES軸域”》:link.
本文將介紹“折線圖”相關內容


plt.plot()函數中的參數非常多,書寫參數的方式也不同,下面列出幾種常見的參數書寫形式:
(1)plot(X,Y)
(2)plot(X,Y,LineSpec)
(3)plot(___,Name,Value)

其中(2)和(3)是兩種設置線型,符號,顏色等參數的不同方式;區別在於(2)中的LineSpec參數只有三部分內容(線型,數據標記符號和顏色,且線點顏色不能區分),而(3)中的“Name,Value”參數則可以分別定義各個“Name”的值(可以設置的內容更多)

  • LineSpec參數描述:一個字符串,分別表示線型、標記和顏色
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
  • Name,Value參數描述(不區分大小寫):

(1) ‘Color’ - 線條顏色
(2)‘LineStyle’ - 線型
(3)‘LineWidth’ - 線條寬度,默認值0.5
(4) ‘Marker’ - 標記符號
(5)‘MarkerSize’ - 標記大小
(6)‘MarkerEdgeColor’ - 標記輪廓顏色
(7)‘MarkerFaceColor’ - 標記填充顏色

  • 畫一組數據

(1)XY值分別是一個點:直線

# 兩點直接的直線
from matplotlib import pyplot as plt
plt.plot([1,2],[8,9])
plt.show()

(2)XY值分別是一個向量,要求長度一致:折線

# 一條折線,由(X1,Y1),(X2,Y2)畫到(Xn,Yn)
from matplotlib import pyplot as plt
X = [0, 1, 2, 3, 4, 5, 6]
Y = [10, 12, 12, 10, 14, 22, 24]
plt.plot(X, Y)
plt.show()
  • 畫多組數據

(1)X是一個矩陣(n*m),Y是一個向量(n個元素):m條折線,使用相同的Y值,對應不同的X

解釋:這聽起來可能有點繞,但是我們可以想像成多組X值,和一組Y值,即:
X1=(x1,x2,x3,x4,x5…)
X2=(x1,x2,x3,x4,x5…)
X3=(x1,x2,x3,x4,x5…)
Y = (y1,y2,y3,y4,y5…)
分別使用plt.plot()函數畫:(X1,Y),(X2,Y),(X3,Y)
不同的是,我們只是將X1,X2,X3以列的方向寫成矩陣的形式

from matplotlib import pyplot as plt
X = [[0,1,4],[3,5,7],[4,7,10],[6,10,15]]
Y = [0,1,2,3]
plt.plot(X,Y)
plt.show()

在這裏插入圖片描述
(2)X是一個矩陣(nm),Y也是一個矩陣要求大小一致(nm):列列對應,m條折線

from matplotlib import pyplot as plt
X = [[6,10,15],[3,5,7],[8,7,10]]
Y = [[2,1,3],[9,2,6],[7,3,9]]
plt.plot(X,Y)
plt.show()

在這裏插入圖片描述

  • 給多組數據添加解釋圖標
# 兩個參數:一個以字符串爲元素的列表(有幾組內容列幾個名字);圖標顯示的位置
# !!!需要注意的是,多組數據的操作實際上都是通過Y來標記X的列,所以命名數據標示時,名字應該就是X矩陣中的每列的名稱
plt.legend(['Column1', 'Column2'...], loc=6,fontsize=12)

# 其中loc參數含義:
	0	best
	1	upper right
	2	upper left
	3	lower left
	4	lower right
	5	right
	6	center left
	7	center right
	8	lower center
	9	upper center
	10	center
  • 放大折線圖的部分樣子
#  plt.axis([min_x,max_x,min_y,max_y])兩軸展示最小值到最大值之間的圖形

x = [0, 1, 2, 3, 4]
y = [0, 1, 4, 9, 16]
plt.plot(x, y)
plt.axis([0, 3, 2, 5])
plt.show()

# 設置座標軸邊界 xlim ylim
plt.xlim(min_x, max_x)
plt.ylim(min_y, max_y)
  • 陰影:plt.fill_between()函數

其中單個必填參數,一個選填參數:
(1)X軸
(2)y軸的下限:設置陰影區域的底部
(3)y軸的上限:設置陰影區域的頂部
(4)alpha = n :取之在(0,1)表示陰影的透明度

from matplotlib import pyplot as plt

months = range(12)
month_names = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
revenue = [16000, 14000, 17500, 19500, 21500, 21500, 22000, 23000, 20000, 19500, 18000, 16500]

plt.plot(months,revenue)
ax=plt.subplot()
ax.set_xticks(months)
ax.set_xticklabels(month_names)

y_lower=[i-0.1*i for i in revenue]
y_upper=[i+0.1*i for i in revenue]
plt.fill_between(months,y_lower,y_upper,alpha=0.2)

plt.show()

在這裏插入圖片描述

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