網站首頁 編程語言 正文
前言:
如果正在看文章的你,還不會繪制折線圖,請看如何使用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", style="italic", weight="light", verticalalignment='center',horizontalalignment='right', rotation=90)
plt.show()
原文鏈接:https://blog.csdn.net/qq_58754996/article/details/121170624
- 上一篇:C語言零基礎精通變量與常量_C 語言
- 下一篇:C++超詳細講解友元的使用_C 語言
相關推薦
- 2022-10-22 如何在Go中使用Casbin進行訪問控制_Golang
- 2022-06-28 python遞歸實現鏈表快速倒轉_python
- 2022-08-01 go中import包的大坑解決方案_Golang
- 2022-11-19 C語言結構體成員賦值的深拷貝與淺拷貝詳解_C 語言
- 2022-07-11 查看 jvm 參數
- 2023-12-23 React環境安裝配置
- 2022-05-14 一起來學習React元素的創建和渲染_React
- 2022-07-21 SpringBoot默認開啟AOP,采用Cglib代理方式?(Spring AOP快速入門)
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支