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

繪制帶有色塊的折線(xiàn)圖的一般步驟:
第一步:繪制出基礎(chǔ)的折線(xiàn)圖:
在繪制色塊前,我們可以使用繪制折線(xiàn)圖的一般操作,繪制出折線(xiàn)圖做基礎(chǔ)準(zhǔn)備。
第二步:計(jì)算每個(gè)坐標(biāo)點(diǎn)對(duì)應(yīng)的上下界:
其實(shí)色塊看起來(lái)就像該坐標(biāo)點(diǎn)在y軸方向上下平移所得的線(xiàn)條在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è)置線(xiàn)條標(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", style="italic", weight="light", verticalalignment='center',horizontalalignment='right', rotation=90) plt.show()

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)蒙特卡洛模擬的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)蒙特卡洛模擬,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴可以了解一下2023-03-03
Django實(shí)現(xiàn)翻頁(yè)的示例代碼
翻頁(yè)是經(jīng)常使用的功能,Django提供了翻頁(yè)器。用Django的Paginator類(lèi)實(shí)現(xiàn),有需要了解Paginator類(lèi)用法的朋友可參考。希望此文章對(duì)各位有所幫助2021-05-05
python創(chuàng)建關(guān)聯(lián)數(shù)組(字典)的方法
這篇文章主要介紹了python創(chuàng)建關(guān)聯(lián)數(shù)組(字典)的方法,涉及Python操作字典的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-05-05
transform python環(huán)境快速配置方法
經(jīng)常在數(shù)據(jù)開(kāi)發(fā)中需要搞udf,最近發(fā)現(xiàn)transform更加方便易用,但是經(jīng)常會(huì)涉及到集群python版本不一、包不全或者部分機(jī)器上沒(méi)有安裝python。這篇文章主要介紹了transform python環(huán)境快速配置方法,需要的朋友可以參考下2018-09-09
Python實(shí)現(xiàn)創(chuàng)建模塊的方法詳解
導(dǎo)入一個(gè)模塊,我們一般都會(huì)使用?import?關(guān)鍵字,但有些場(chǎng)景下?import?難以滿(mǎn)足我們的需要。所以除了?import?之外還有很多其它導(dǎo)入模塊的方式,下面就來(lái)介紹一下2022-07-07
Python的條件語(yǔ)句與運(yùn)算符優(yōu)先級(jí)詳解
這篇文章主要介紹了Python的條件語(yǔ)句與運(yùn)算符優(yōu)先級(jí),是Python入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-10-10
關(guān)于Python面向?qū)ο缶幊痰闹R(shí)點(diǎn)總結(jié)
Python從設(shè)計(jì)之初就已經(jīng)是一門(mén)面向?qū)ο蟮恼Z(yǔ)言,正因?yàn)槿绱耍赑ython中創(chuàng)建一個(gè)類(lèi)和對(duì)象是很容易的。下面這篇文章將詳細(xì)給大家介紹關(guān)于Python面向?qū)ο缶幊痰闹R(shí)點(diǎn),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-02-02

