網(wǎng)站首頁 編程語言 正文
前言:
我的python學(xué)習(xí)也告一段落了。不過有些,方法還是打算總結(jié)一下和大家分享。我整理了使用matplotlib繪制折線圖的一般步驟,按照這個步驟走繪制折線圖一般都沒啥問題。其實用matplotlib庫繪制折線圖的過程,其實就是類似于數(shù)學(xué)上描點,連線繪制圖形的過程。所有,這個過程就可以簡單的規(guī)劃為獲取圖像點信息,描點連線,設(shè)置圖線格式這三個部分。
matplotlib庫的安裝以及程序引用的說明:
我使用的編程軟件為pycharm,我就說一下pycharm安裝matplotlib庫的方法吧。在主頁面文件選項下,找到設(shè)置。進一步找到項目解釋器。之后在所選框中,點擊軟件包上的+號就可以進行查詢插件安裝了。有過編譯器插件安裝的hxd估計會比較好入手。具體情況就如下圖所示。
至于程序書寫過程中,我們需要引用matplotlib庫,用于繪制折線圖,一般這樣引用:
import matplotlib.pyplot as plt
折線圖繪制的一般過程:
第一步:獲取自己所需要的點的坐標(biāo):
一般我們是繪制平面圖,也就是說,我們需要獲取點的x坐標(biāo)和y坐標(biāo)。我們用于繪制折線圖時,坐標(biāo)信息一般都保存于兩個列表中。兩個列表對應(yīng)index下標(biāo)對應(yīng)的值,就為一個點的x,y值。至于點的坐標(biāo)信息,就可以根據(jù)需要自己設(shè)置了。
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]#直接建立列表,設(shè)置
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]#循環(huán)求平均值
這是我一個程序中,設(shè)置x,y坐標(biāo)的方法。
第二步:連線繪圖:
是的,這個過程并不復(fù)雜。把點的信息設(shè)置好就可以直接繪制圖形了。繪制圖形也很簡單,調(diào)用plot函數(shù)就行。這是繪制折線圖的函數(shù)。用matpotlib繪制其它圖差不多也是這個過程,不過繪圖函數(shù)不一樣罷了。
# 繪制圖形
plt.plot(x, y, linewidth=1, color="orange", marker="o",label="Mean value")
其中參數(shù)的解釋:
color:代表的是折線的顏色設(shè)置
label:代表的是設(shè)置折線的標(biāo)簽,其實就相當(dāng)于給它取了個名字
linewidth:代表給折線設(shè)置寬度,通俗的說就是粗細
marker:"o"這樣的寫法,可以使得折線中每個點被標(biāo)記出來。不設(shè)置,就看不到每個點。
第三步:折線圖坐標(biāo)軸的設(shè)置:
調(diào)用label函數(shù)就可以給橫縱坐標(biāo)軸起名字了。
plt.xlabel("發(fā)布日期")#給x軸起名字
plt.ylabel("小說數(shù)量")#給y軸起名字
調(diào)用xticks函數(shù)和ytickes函數(shù)就可以設(shè)置折線圖的坐標(biāo)軸了。中間的列表就是設(shè)置各個坐標(biāo)軸上有幾個點,且每個點的值是多少。中間數(shù)據(jù)的多少和取值多少隨意,看自己的需要。
# 設(shè)置橫縱坐標(biāo)
plt.xticks([0, 2, 4, 6, 8, 10, 12])
plt.yticks([0, 5, 10, 15, 20, 25])
第四步:其它的一些設(shè)置:
圖像標(biāo)題的設(shè)置:
使用plt.title("")函數(shù)就可以設(shè)置圖像標(biāo)題了。
背景網(wǎng)格的設(shè)置:
如果想讓自己的圖像背景不是白板,有網(wǎng)格線的話,就可以加上grid語句。
plt.grid() ?# 設(shè)置網(wǎng)格模式
折線說明框的設(shè)置:
如果想在圖像中加入折線說明框,就可以使用legend函數(shù),它會自動提取折線的名字然后表示出來。比如,我的折線取名為Mean Value。就會出現(xiàn)下面這個框。下面的那個,是另一條線的名字。
圖像上每個點文本的設(shè)置:
還可以給每個點設(shè)置文本。就是折線上,每個點旁邊顯示一個數(shù)字或者幾個字啥的。這個用text函數(shù)就可以做到。
#設(shè)置每個點上的數(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)
text函數(shù),前兩個值表示點的坐標(biāo),第三個值就是要設(shè)置的文本信息。至于后面的都是屬性值的設(shè)置,fontsize是字體大小的設(shè)置,color是字體顏色的設(shè)置,style是字體格式的設(shè)置,也就是字體類型。weight是字體顏色深度的設(shè)置。后面兩個屬性值,是顯示位置的設(shè)置。
第五步:將圖像信息顯示出來:
如果想保存圖像的話,可以直接調(diào)用savefig函數(shù)。
plt.savefig("./xrd.png")
當(dāng)然繪制好的圖像是看不到的,要調(diào)用函數(shù)show才能看到。
plt.show()
代碼實例以及繪制出的圖像:
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è)置每個點上的數(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()
原文鏈接:https://blog.csdn.net/qq_58754996/article/details/121169861
相關(guān)推薦
- 2022-04-12 在碼云遠程倉庫提交時遇到的問題error: failed to push some refs to
- 2022-03-26 正則表達式詳析+常用示例_正則表達式
- 2023-11-26 String字符串類
- 2022-12-29 React控制元素顯示隱藏的三種方法小結(jié)_React
- 2022-12-06 詳解Python的整數(shù)是如何實現(xiàn)的_python
- 2022-07-14 Python中添加搜索路徑的方法實例_python
- 2022-06-10 ASP.NET?Core使用EF保存數(shù)據(jù)、級聯(lián)刪除和事務(wù)使用_實用技巧
- 2022-11-28 詳解如何使用C++寫一個線程安全的單例模式_C 語言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支