python使用matplotlib繪制折線(xiàn)圖
前言:
我的python學(xué)習(xí)也告一段落了。不過(guò)有些,方法還是打算總結(jié)一下和大家分享。我整理了使用matplotlib繪制折線(xiàn)圖的一般步驟,按照這個(gè)步驟走繪制折線(xiàn)圖一般都沒(méi)啥問(wèn)題。其實(shí)用matplotlib庫(kù)繪制折線(xiàn)圖的過(guò)程,其實(shí)就是類(lèi)似于數(shù)學(xué)上描點(diǎn),連線(xiàn)繪制圖形的過(guò)程。所有,這個(gè)過(guò)程就可以簡(jiǎn)單的規(guī)劃為獲取圖像點(diǎn)信息,描點(diǎn)連線(xiàn),設(shè)置圖線(xiàn)格式這三個(gè)部分。
matplotlib庫(kù)的安裝以及程序引用的說(shuō)明:
我使用的編程軟件為pycharm,我就說(shuō)一下pycharm安裝matplotlib庫(kù)的方法吧。在主頁(yè)面文件選項(xiàng)下,找到設(shè)置。進(jìn)一步找到項(xiàng)目解釋器。之后在所選框中,點(diǎn)擊軟件包上的+號(hào)就可以進(jìn)行查詢(xún)插件安裝了。有過(guò)編譯器插件安裝的hxd估計(jì)會(huì)比較好入手。具體情況就如下圖所示。


至于程序書(shū)寫(xiě)過(guò)程中,我們需要引用matplotlib庫(kù),用于繪制折線(xiàn)圖,一般這樣引用:
import matplotlib.pyplot as plt
折線(xiàn)圖繪制的一般過(guò)程:
第一步:獲取自己所需要的點(diǎn)的坐標(biāo):
一般我們是繪制平面圖,也就是說(shuō),我們需要獲取點(diǎn)的x坐標(biāo)和y坐標(biāo)。我們用于繪制折線(xiàn)圖時(shí),坐標(biāo)信息一般都保存于兩個(gè)列表中。兩個(gè)列表對(duì)應(yīng)index下標(biāo)對(duì)應(yīng)的值,就為一個(gè)點(diǎn)的x,y值。至于點(diǎn)的坐標(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)求平均值
這是我一個(gè)程序中,設(shè)置x,y坐標(biāo)的方法。
第二步:連線(xiàn)繪圖:
是的,這個(gè)過(guò)程并不復(fù)雜。把點(diǎn)的信息設(shè)置好就可以直接繪制圖形了。繪制圖形也很簡(jiǎn)單,調(diào)用plot函數(shù)就行。這是繪制折線(xiàn)圖的函數(shù)。用matpotlib繪制其它圖差不多也是這個(gè)過(guò)程,不過(guò)繪圖函數(shù)不一樣罷了。
# 繪制圖形 plt.plot(x, y, linewidth=1, color="orange", marker="o",label="Mean value")
其中參數(shù)的解釋?zhuān)?/p>
color:代表的是折線(xiàn)的顏色設(shè)置
label:代表的是設(shè)置折線(xiàn)的標(biāo)簽,其實(shí)就相當(dāng)于給它取了個(gè)名字
linewidth:代表給折線(xiàn)設(shè)置寬度,通俗的說(shuō)就是粗細(xì)
marker:"o"這樣的寫(xiě)法,可以使得折線(xiàn)中每個(gè)點(diǎn)被標(biāo)記出來(lái)。不設(shè)置,就看不到每個(gè)點(diǎn)。
第三步:折線(xiàn)圖坐標(biāo)軸的設(shè)置:
調(diào)用label函數(shù)就可以給橫縱坐標(biāo)軸起名字了。
plt.xlabel("發(fā)布日期")#給x軸起名字
plt.ylabel("小說(shuō)數(shù)量")#給y軸起名字調(diào)用xticks函數(shù)和ytickes函數(shù)就可以設(shè)置折線(xiàn)圖的坐標(biāo)軸了。中間的列表就是設(shè)置各個(gè)坐標(biāo)軸上有幾個(gè)點(diǎn),且每個(gè)點(diǎn)的值是多少。中間數(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)格線(xiàn)的話(huà),就可以加上grid語(yǔ)句。
plt.grid() ?# 設(shè)置網(wǎng)格模式
折線(xiàn)說(shuō)明框的設(shè)置:
如果想在圖像中加入折線(xiàn)說(shuō)明框,就可以使用legend函數(shù),它會(huì)自動(dòng)提取折線(xiàn)的名字然后表示出來(lái)。比如,我的折線(xiàn)取名為Mean Value。就會(huì)出現(xiàn)下面這個(gè)框。下面的那個(gè),是另一條線(xiàn)的名字。

圖像上每個(gè)點(diǎn)文本的設(shè)置:
還可以給每個(gè)點(diǎn)設(shè)置文本。就是折線(xiàn)上,每個(gè)點(diǎn)旁邊顯示一個(gè)數(shù)字或者幾個(gè)字啥的。這個(gè)用text函數(shù)就可以做到。
#設(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)
text函數(shù),前兩個(gè)值表示點(diǎn)的坐標(biāo),第三個(gè)值就是要設(shè)置的文本信息。至于后面的都是屬性值的設(shè)置,fontsize是字體大小的設(shè)置,color是字體顏色的設(shè)置,style是字體格式的設(shè)置,也就是字體類(lèi)型。weight是字體顏色深度的設(shè)置。后面兩個(gè)屬性值,是顯示位置的設(shè)置。
第五步:將圖像信息顯示出來(lái):
如果想保存圖像的話(huà),可以直接調(diào)用savefig函數(shù)。
plt.savefig("./xrd.png")當(dāng)然繪制好的圖像是看不到的,要調(diào)用函數(shù)show才能看到。
plt.show()
代碼實(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è)置線(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報(bào)錯(cuò):ModuleNotFoundError的解決辦法
"ModuleNotFoundError: No module named 'xxx'"這個(gè)報(bào)錯(cuò)是個(gè)非常常見(jiàn)的報(bào)錯(cuò),幾乎每個(gè)python程序員都遇到過(guò),下面這篇文章主要給大家介紹了關(guān)于Python報(bào):ModuleNotFoundError錯(cuò)誤的解決辦法,需要的朋友可以參考下2022-06-06
Python實(shí)現(xiàn)把類(lèi)當(dāng)做字典來(lái)訪(fǎng)問(wèn)
今天小編就為大家分享一篇Python實(shí)現(xiàn)把類(lèi)當(dāng)做字典來(lái)訪(fǎng)問(wèn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
python正則實(shí)現(xiàn)提取電話(huà)功能
這篇文章主要為大家詳細(xì)介紹了python正則實(shí)現(xiàn)提取電話(huà)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02
Python bisect_left 函數(shù)使用場(chǎng)景詳解
在Python的編程世界中,數(shù)據(jù)處理和搜索操作是非常常見(jiàn)的任務(wù),bisect_left函數(shù)是Python標(biāo)準(zhǔn)庫(kù)bisect模塊中的一個(gè)強(qiáng)大工具,接下來(lái),我們將詳細(xì)探討bisect_left函數(shù)的使用場(chǎng)景,需要的朋友可以參考下2024-11-11
Python Web框架Flask中使用新浪SAE云存儲(chǔ)實(shí)例
這篇文章主要介紹了Python Web框架Flask中使用新浪SAE云存儲(chǔ)實(shí)例,本文是對(duì)SAE云存儲(chǔ)的簡(jiǎn)單封裝,需要的朋友可以參考下2015-02-02
Python中實(shí)現(xiàn)輸入超時(shí)及如何通過(guò)變量獲取變量名
這篇文章主要介紹了Python中實(shí)現(xiàn)輸入超時(shí)以及通過(guò)變量獲取變量的名字,本文給大家分享了解決思路主要是通過(guò)多線(xiàn)程法實(shí)現(xiàn),需要的朋友可以參考下2020-01-01
淺談keras2 predict和fit_generator的坑
這篇文章主要介紹了淺談keras2 predict和fit_generator的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
Python自然語(yǔ)言處理詞匯分析技術(shù)實(shí)戰(zhàn)
這篇文章為大家介紹了Python自然語(yǔ)言處理詞匯分析技術(shù)實(shí)戰(zhàn),主要對(duì)詞匯分析進(jìn)行介紹,一些語(yǔ)言方面的基礎(chǔ)知識(shí)(詞性、詞語(yǔ)規(guī)范化),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>2024-01-01

