python繪制帶有色塊的折線圖
前言:
如果正在看文章的你,還不會繪制折線圖,請看如何使用matplotlib繪制折線圖這篇文章,該文章會仔細(xì)而詳盡的告訴你繪制折線圖的方法。言歸正傳,給折線圖加色塊,算是折線圖的附加內(nèi)容。加一個函數(shù)就可以搞定。效果圖如下所示:
繪制帶有色塊的折線圖的一般步驟:
第一步:繪制出基礎(chǔ)的折線圖:
在繪制色塊前,我們可以使用繪制折線圖的一般操作,繪制出折線圖做基礎(chǔ)準(zhǔn)備。
第二步:計(jì)算每個坐標(biāo)點(diǎn)對應(yīng)的上下界:
其實(shí)色塊看起來就像該坐標(biāo)點(diǎn)在y軸方向上下平移所得的線條在x軸方向拼接而成。在繪制色塊之前,我們需要計(jì)算出上下界。這個和獲取圖像點(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))]
這個是我寫的獲得上下界的程序。當(dāng)然上下界看你自己,內(nèi)容自定。不過得存在列表里,要求和獲取坐標(biāo)點(diǎn)一樣。
第三步:繪制色塊:
繪制色塊其實(shí)很簡單,調(diào)用函數(shù)fill_between就可以。
plt.fill_between(x, yTop, yBottom ,color="lightgreen",label="Standard deviation")#填充色塊
該函數(shù)第一個值對應(yīng)的是點(diǎn)的x坐標(biāo),第二個值就是各點(diǎn)對應(yīng)的上界,第三個值就是各點(diǎn)對應(yīng)的下界。后面就是一些基礎(chǔ)的屬性的設(shè)置,自然不必多說。
代碼示例:
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)識 plt.grid() ?# 設(shè)置網(wǎng)格模式 #設(shè)置每個點(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()
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Django添加favicon.ico圖標(biāo)的示例代碼
這篇文章主要介紹了Django添加favicon.ico圖標(biāo)的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08Python棧算法的實(shí)現(xiàn)與簡單應(yīng)用示例
這篇文章主要介紹了Python棧算法的實(shí)現(xiàn)與簡單應(yīng)用,簡單講述了棧的原理并結(jié)合實(shí)例形式給出了基于棧實(shí)現(xiàn)的進(jìn)制轉(zhuǎn)換與括號匹配等相關(guān)使用技巧,需要的朋友可以參考下2017-11-11python針對mysql數(shù)據(jù)庫的連接、查詢、更新、刪除操作示例
這篇文章主要介紹了python針對mysql數(shù)據(jù)庫的連接、查詢、更新、刪除操作,結(jié)合實(shí)例形式詳細(xì)分析了Python操作mysql數(shù)據(jù)庫的連接與增刪改查相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-09-09Python3.5內(nèi)置模塊之shelve模塊、xml模塊、configparser模塊、hashlib、hmac模塊用法
這篇文章主要介紹了Python3.5內(nèi)置模塊之shelve模塊、xml模塊、configparser模塊、hashlib、hmac模塊,結(jié)合實(shí)例形式較為詳細(xì)的分析了shelve、xml、configparser、hashlib、hmac等模塊的功能及使用方法,需要的朋友可以參考下2019-04-04OpenCV如何去除圖片中的陰影的實(shí)現(xiàn)
這篇文章主要介紹了OpenCV如何去除圖片中的陰影的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03shell命令行,一鍵創(chuàng)建 python 模板文件腳本方法
下面小編就為大家分享一篇shell命令行,一鍵創(chuàng)建 python 模板文件腳本方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03Python 編碼規(guī)范(Google Python Style Guide)
本項(xiàng)目并非 Google 官方項(xiàng)目, 而是由國內(nèi)程序員憑熱情創(chuàng)建和維護(hù),對于想學(xué)習(xí)python的朋友可以參考一下2018-05-05