溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python怎么繪制帶有色塊的折線圖

發(fā)布時(shí)間:2022-04-24 10:51:00 來(lái)源:億速云 閱讀:216 作者:iii 欄目:開(kāi)發(fā)技術(shù)

今天小編給大家分享一下python怎么繪制帶有色塊的折線圖的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

前言:

如果正在看文章的你,還不會(huì)繪制折線圖,請(qǐng)前往本人的主頁(yè)看如何使用matplotlib繪制折線圖這篇文章,該文章會(huì)仔細(xì)而詳盡的告訴你繪制折線圖的方法。言歸正傳,給折線圖加色塊,算是折線圖的附加內(nèi)容。加一個(gè)函數(shù)就可以搞定。效果圖如下所示:

python怎么繪制帶有色塊的折線圖

繪制帶有色塊的折線圖的一般步驟:

第一步:繪制出基礎(chǔ)的折線圖:

在繪制色塊前,我們可以使用繪制折線圖的一般操作,繪制出折線圖做基礎(chǔ)準(zhǔn)備。

第二步:計(jì)算每個(gè)坐標(biāo)點(diǎn)對(duì)應(yīng)的上下界:

其實(shí)色塊看起來(lái)就像該坐標(biāo)點(diǎn)在y軸方向上下平移所得的線條在x軸方向拼接而成。在繪制色塊之前,我們需要計(jì)算出上下界。這個(gè)和獲取圖像點(diǎn)的坐標(biāo)一樣的道理。

# 算標(biāo)準(zhǔn)差
yTop = [y[i] + np.std(data[i]) for i in range(len(data))]
yBottom = [y[i] - np.std(data[i]) for i in range(len(data))]

這個(gè)是我寫(xiě)的獲得上下界的程序。當(dāng)然上下界看你自己,內(nèi)容自定。不過(guò)得存在列表里,要求和獲取坐標(biāo)點(diǎn)一樣。

第三步:繪制色塊:

繪制色塊其實(shí)很簡(jiǎn)單,調(diào)用函數(shù)fill_between就可以。

plt.fill_between(x, yTop, yBottom ,color="lightgreen",label="Standard deviation")#填充色塊

該函數(shù)第一個(gè)值對(duì)應(yīng)的是點(diǎn)的x坐標(biāo),第二個(gè)值就是各點(diǎn)對(duì)應(yīng)的上界,第三個(gè)值就是各點(diǎn)對(duì)應(yīng)的下界。后面就是一些基礎(chǔ)的屬性的設(shè)置,自然不必多說(shuō)。

代碼示例:

import numpy as np
import matplotlib.pyplot as plt
 
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
data = [[1, 2, 3, 4, 5, 6],
        [2, 4, 6, 8, 10, 12],
        [1, 3, 5, 7, 9, 11],
        [1.1, 2.2, 3.3, 4.4, 5.5, 6.6],
        [3, 6, 9, 12, 15, 18],
        [4, 8, 12, 16, 20, 24],
        [5, 10, 15, 20, 25, 30],
        [1.5, 2.5, 3.5, 4.5, 5.5, 6.5],
        [1, 4, 7, 10, 13, 16],
        [2, 5, 8, 11, 14, 17]]
y = [np.mean(i) for i in data]
 
 
# 繪制圖形
plt.plot(x, y, linewidth=1, color="orange", marker="o",label="Mean value")
# 算標(biāo)準(zhǔn)差
yTop = [y[i] + np.std(data[i]) for i in range(len(data))]
yBottom = [y[i] - np.std(data[i]) for i in range(len(data))]
plt.fill_between(x, yTop, yBottom ,color="lightgreen",label="Standard deviation")#填充色塊
# 設(shè)置橫縱坐標(biāo)
plt.xticks([0, 2, 4, 6, 8, 10, 12])
plt.yticks([0, 5, 10, 15, 20, 25])
plt.legend(["Mean value","Standard deviation"],loc="upper left")#設(shè)置線條標(biāo)識(shí)
plt.grid()  # 設(shè)置網(wǎng)格模式
#設(shè)置每個(gè)點(diǎn)上的數(shù)值
for i in range(10):
        plt.text(x[i], y[i], y[i], fontsize=12, color="black", , weight="light", verticalalignment='center',horizontalalignment='right', rotation=90)
plt.show()

python怎么繪制帶有色塊的折線圖

以上就是“python怎么繪制帶有色塊的折線圖”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI