您好,登錄后才能下訂單哦!
今天小編給大家分享一下python怎么繪制帶有色塊的折線圖的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
如果正在看文章的你,還不會繪制折線圖,請前往本人的主頁看如何使用matplotlib繪制折線圖這篇文章,該文章會仔細而詳盡的告訴你繪制折線圖的方法。言歸正傳,給折線圖加色塊,算是折線圖的附加內容。加一個函數就可以搞定。效果圖如下所示:
繪制帶有色塊的折線圖的一般步驟:
第一步:繪制出基礎的折線圖:
在繪制色塊前,我們可以使用繪制折線圖的一般操作,繪制出折線圖做基礎準備。
第二步:計算每個坐標點對應的上下界:
其實色塊看起來就像該坐標點在y軸方向上下平移所得的線條在x軸方向拼接而成。在繪制色塊之前,我們需要計算出上下界。這個和獲取圖像點的坐標一樣的道理。
# 算標準差 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))]
這個是我寫的獲得上下界的程序。當然上下界看你自己,內容自定。不過得存在列表里,要求和獲取坐標點一樣。
第三步:繪制色塊:
繪制色塊其實很簡單,調用函數fill_between就可以。
plt.fill_between(x, yTop, yBottom ,color="lightgreen",label="Standard deviation")#填充色塊
該函數第一個值對應的是點的x坐標,第二個值就是各點對應的上界,第三個值就是各點對應的下界。后面就是一些基礎的屬性的設置,自然不必多說。
代碼示例:
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") # 算標準差 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")#填充色塊 # 設置橫縱坐標 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")#設置線條標識 plt.grid() # 設置網格模式 #設置每個點上的數值 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怎么繪制帶有色塊的折線圖”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。