国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python使用Matplotlib庫繪制雙y軸圖形(柱狀圖+折線圖)

這篇具有很好參考價(jià)值的文章主要介紹了Python使用Matplotlib庫繪制雙y軸圖形(柱狀圖+折線圖)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

今天是第一次寫踩坑日記系列,這個(gè)系列用來記錄在Python和R學(xué)習(xí)過程中遇到的問題和結(jié)果。今天介紹的是使用Python的matplotlib庫繪制兩個(gè)y軸圖的一些基本用法與踩坑行為。希望可以幫助到大家,也希望大家可以給出建議,歡迎留言交流。

Matplotlib介紹

Matplotlib是Python數(shù)據(jù)分析中常用的可視化工具,也是其他高級(jí)繪圖接口(如seaborn, HoloViews, ggplot等)和專業(yè)繪圖工具(如Cartopy)的基礎(chǔ)。Matplotlib可以創(chuàng)建出版質(zhì)量的圖形,制作交互式的圖形,自定義視覺風(fēng)格和布局,導(dǎo)出到多種文件格式,嵌入在JupyterLab和圖形用戶界面中。更多探索內(nèi)容請(qǐng)查看Matplotlib官網(wǎng)或Matplotlib中文網(wǎng)。

安裝

pip install matplotlib

繪圖元素

以下是 Matplotlib 圖形的組件,來自于Matplotlib官網(wǎng),詳細(xì)使用方法查看快速入門指南 — Matplotlib 3.7.1 文檔。 python雙y軸的折線圖,python

設(shè)置標(biāo)題或軸名稱等文本標(biāo)簽內(nèi)容時(shí),如果含有中文字符出現(xiàn)亂碼的情況,需要添加以下代碼,如果仍然無法解決,可以嘗試將SimHei字體改為FangSong等其他字體。

plt.rcParams['font.sans-serif']=['SimHei'] # 用來設(shè)置字體樣式以正常顯示中文標(biāo)簽(黑體)

如果數(shù)字為負(fù)數(shù),也可能會(huì)亂碼,解決方法為:

plt.rcParams['axes.unicode_minus']=False

Matplotlib提供了多種圖形,包括基本的柱狀圖、折線圖、散點(diǎn)圖、箱線圖、散點(diǎn)圖、餅圖等,還提供了極坐標(biāo)圖、3D圖形等高級(jí)的可視化圖形(如果不想看官方文檔,可以查看知乎上的一篇文章學(xué)習(xí)繪制以上圖形的基本方法),可以通過以上參數(shù)對(duì)圖像細(xì)節(jié)進(jìn)行修改,并且可以對(duì)各種圖形進(jìn)行組合。

雙y軸圖

畫單y軸圖

import numpy as np  
import matplotlib.pyplot as plt

# 生成一些示例數(shù)據(jù)
x = np.arange(10)
y = np.random.randint(0,20,10)

# 繪制折線圖,設(shè)置顏色
plt.plot(x,y,color='blue')
# 設(shè)置x軸和y軸的標(biāo)簽,指明坐標(biāo)含義
plt.xlabel('x軸', fontdict={'size': 16})
plt.ylabel('y軸', fontdict={'size': 16})
#設(shè)置圖標(biāo)題
plt.title('折線圖')

# 設(shè)置中文顯示
plt.rcParams['font.sans-serif']=['SimHei']
#展示圖片
plt.show()

python雙y軸的折線圖,python
#畫柱狀圖
plt.bar(x,y,color='blue')#只要將以上代碼中的`plot`改為`bar`
python雙y軸的折線圖,python

雙y軸折線圖

import numpy as np  
import matplotlib.pyplot as plt

# 生成一些示例數(shù)據(jù)
x = np.arange(10)
y1 = np.random.randint(10, size=10)
y2 = np.random.randint(10, size=10)

# 創(chuàng)建一個(gè)圖形和兩個(gè)y軸
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
#繪制折線圖
line1 = ax1.plot(x, y1,label='y1軸', color='royalblue', marker='o', ls='-.')
line2 = ax2.plot(x, y2, label='y2軸', color='tomato', marker=None, ls='--')

# 設(shè)置x軸和y軸的標(biāo)簽,指明坐標(biāo)含義
ax1.set_xlabel('x軸', fontdict={'size': 16})
ax1.set_ylabel('y1軸',fontdict={'size': 16})
ax2.set_ylabel('y2軸',fontdict={'size': 16})
#添加圖表題
plt.title('雙y軸折線圖')
#添加圖例
plt.legend()
# 設(shè)置中文顯示
plt.rcParams['font.sans-serif']=['SimHei']
#展示圖片
plt.show()
python雙y軸的折線圖,python

解決圖例 通過以上方式設(shè)置的圖例沒有y1軸,并且也沒有出現(xiàn)報(bào)錯(cuò)信息,說明兩個(gè)圖例都顯示出來的,很有可能就是y2軸的圖例將y1軸圖例覆蓋了。通過將兩軸的圖例分開顯示后證明確實(shí)是覆蓋掉了

#將`plt.legend()`改為以下代碼
ax1.legend(loc='upper right')
ax2.legend(loc='upper left')
python雙y軸的折線圖,python

但是兩個(gè)圖例分開顯示也太丑了,還是希望可以將圖例組合到一起

lines = line1 + line2  
labels = [h.get_label() for h in lines]
plt.legend(lines, labels, loc='upper right')
python雙y軸的折線圖,python

設(shè)置軸 感覺這樣看著有點(diǎn)不方便,如果把軸和線的顏色一致可能要好看一些

#設(shè)置軸標(biāo)簽顏色  
ax1.tick_params('y', colors='royalblue')
ax2.tick_params('y', colors='tomato')
#設(shè)置軸顏色
ax1.spines['left'].set_color('royalblue')
ax2.spines['left'].set_color('royalblue')
ax1.spines['right'].set_color('tomato')
ax2.spines['right'].set_color('tomato')
python雙y軸的折線圖,python

兩個(gè)y軸的顏色改變確實(shí)要好看一點(diǎn),但是上軸線有點(diǎn)突兀,把它去掉

ax1.spines['top'].set_visible(False)  
ax2.spines['top'].set_visible(False)
python雙y軸的折線圖,python

柱狀圖+折線圖

把上邊的y2改為柱狀圖,繪制柱狀圖與折線圖雙y軸圖

import numpy as np  
import matplotlib.pyplot as plt
# 生成一些示例數(shù)據(jù)
x = np.arange(10)
y1 = np.random.randint(10, size=10)
y2 = np.random.randint(10, size=10)
# 創(chuàng)建一個(gè)圖形和兩個(gè)y軸
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
#繪制圖形
bar = ax1.bar(x, y1, label='y1軸', color='tomato', width=0.4)
line = ax2.plot(x, y2,label='y2軸', color='royalblue', marker='o', ls='-.')
# 設(shè)置x軸和y軸的標(biāo)簽,指明坐標(biāo)含義
ax1.set_xlabel('x軸', fontdict={'size': 16})
ax1.set_ylabel('y1軸',fontdict={'size': 16})
ax2.set_ylabel('y2軸',fontdict={'size': 16})
#添加圖表題
plt.title('雙y軸折線圖')
#添加圖例
lines = line + bar
labels = [h.get_label() for h in lines]
plt.legend(lines, labels, loc='upper right')
#設(shè)置軸標(biāo)簽顏色
ax1.tick_params('y', colors='royalblue')
ax2.tick_params('y', colors='tomato')
#設(shè)置軸顏色
ax1.spines['left'].set_color('royalblue')
ax2.spines['left'].set_color('royalblue')
ax1.spines['right'].set_color('tomato')
ax2.spines['right'].set_color('tomato')
#去掉上軸線
ax1.spines['top'].set_visible(False)
ax2.spines['top'].set_visible(False)
# 設(shè)置中文顯示
plt.rcParams['font.sans-serif']=['SimHei']
#展示圖片
plt.show()

哎嗨,報(bào)錯(cuò)了。matplotlib柱狀圖的返回值是一個(gè)BarContainer元組對(duì)象,而折線圖的返回值是一個(gè)Line2D列表對(duì)象。 python雙y軸的折線圖,pythonpython雙y軸的折線圖,python

使用matplotlib.pyplot.plot()函數(shù)來繪制一條折線,并將其返回值賦給一個(gè)變量,需要注意plot()函數(shù)返回的是一個(gè)包含一個(gè)Line2D對(duì)象的列表,而不是一個(gè)Line2D對(duì)象本身。所以,你需要在變量后面加上一個(gè)逗號(hào),或者在使用get_label()方法時(shí)指定列表的索引為0,才能正確地獲取Line2D對(duì)象的標(biāo)簽。所以將以上#繪制圖形 模塊改為

 
#繪制圖形
bar = ax1.bar(x, y1, label='y1軸', color='tomato', width=0.4)
line, = ax2.plot(x, y2,label='y2軸', color='royalblue', marker='o', ls='-.')

python雙y軸的折線圖,python

好了,今天的踩坑日記就到這里了,對(duì)于圖的其它修改細(xì)節(jié),大家可以自己嘗試一下,多試試總能發(fā)現(xiàn)不同的坑。

本文由 mdnice 多平臺(tái)發(fā)布文章來源地址http://www.zghlxwxcb.cn/news/detail-613933.html

到了這里,關(guān)于Python使用Matplotlib庫繪制雙y軸圖形(柱狀圖+折線圖)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Python】Matplotlib繪制折線圖

    【Python】Matplotlib繪制折線圖

    1.Matplotlib畫圖簡(jiǎn)單實(shí)現(xiàn) Matplotlib在一個(gè)繪制2D圖片的庫 2.折線圖 2.1繪制折線圖 接下來逐步對(duì)折線圖進(jìn)行修改 2.2設(shè)置線的格式 2.3設(shè)置折點(diǎn) 2.4.圖片的保存和導(dǎo)出 2.5設(shè)置刻度 2.6顯示中文 matplotlib只顯示應(yīng)為,無法顯示中文,需要修改matplotlib的默認(rèn)字體 通過matplotlib下的font_mange

    2023年04月09日
    瀏覽(21)
  • 超詳細(xì)的Python matplotlib 繪制柱狀圖

    Python 為數(shù)據(jù)展示提供了大量?jī)?yōu)秀的功能包,其中 matplotlib 模塊可以方便繪制制作折線圖、柱狀圖、散點(diǎn)圖等高質(zhì)量的數(shù)據(jù)包。 關(guān)于 matplotlib 模塊,我們前期已經(jīng)對(duì)matplotlib進(jìn)行基本框架、以及常用方法的學(xué)習(xí) Python matplotlib 繪制餅圖_ python matplotlib繪制折線圖_ python入門到進(jìn)階,

    2023年04月08日
    瀏覽(24)
  • python基礎(chǔ)----08-----json、pyecharts模塊介紹以及折線圖、地圖、柱狀圖的繪制

    python基礎(chǔ)----08-----json、pyecharts模塊介紹以及折線圖、地圖、柱狀圖的繪制

    json就是 一種在各個(gè)編程語言中流通的數(shù)據(jù)格式,負(fù)責(zé)不同編程語言中的數(shù)據(jù)傳遞和交互、類似于: 國際通用語言 -英語。 pyecharts模塊 :如果想要 做出數(shù)據(jù)可視化效果圖,可以借助pyecharts模塊來完成。 概況: Echarts是個(gè)由百度開源的數(shù)據(jù)可視化,憑借著良好的交互性,精巧的

    2024年02月08日
    瀏覽(26)
  • python讀取excel數(shù)據(jù)并用雙y軸繪制柱狀圖和折線圖,柱子用漸變顏色填充

    python讀取excel數(shù)據(jù)并用雙y軸繪制柱狀圖和折線圖,柱子用漸變顏色填充

    往期python繪圖合集: python繪制簡(jiǎn)單的折線圖 python讀取excel中數(shù)據(jù)并繪制多子圖多組圖在一張畫布上 python繪制帶誤差棒的柱狀圖 python繪制多子圖并單獨(dú)顯示 python讀取excel數(shù)據(jù)并繪制多y軸圖像 python繪制柱狀圖并美化|不同顏色填充柱子 python隨機(jī)生成數(shù)據(jù)并用雙y軸繪制兩條帶誤差

    2024年02月10日
    瀏覽(27)
  • Python學(xué)習(xí)筆記(11-2):matplotlib繪圖——圖形繪制函數(shù)

    Python學(xué)習(xí)筆記(11-2):matplotlib繪圖——圖形繪制函數(shù)

    因?yàn)椴糠謭D形繪制函數(shù)共用了一套參數(shù)體系,在顏色、曲線形狀等部分的使用方式也是一致的。所以,在講解各類圖形繪制之前,我們整體性地對(duì)各類通用參數(shù)進(jìn)行一個(gè)整理,并在此基礎(chǔ)上對(duì)于顏色(color)、數(shù)據(jù)點(diǎn)標(biāo)記(marker)和曲線形式(linestyle)等幾個(gè)通用參數(shù)進(jìn)行相

    2024年02月06日
    瀏覽(25)
  • 【100天精通Python】Day64:Python可視化_Matplotlib繪制誤差線圖、填充圖、堆疊面積圖,示例+代碼

    ????????誤差線圖用于可視化一個(gè)或多個(gè)數(shù)據(jù)集的測(cè)量值及其相關(guān)誤差或不確定性。每個(gè)數(shù)據(jù)點(diǎn)可能有不同的誤差范圍,這些誤差可以表示為上下誤差條、對(duì)稱誤差、非對(duì)稱誤差等。通常,誤差線圖用于比較多個(gè)實(shí)驗(yàn)條件或數(shù)據(jù)源之間的差異。 (1)?上下誤差條(Vertica

    2024年02月07日
    瀏覽(28)
  • python的matplotlib繪制動(dòng)態(tài)圖形(用animation中的FuncAnimation)

    python的matplotlib繪制動(dòng)態(tài)圖形(用animation中的FuncAnimation)

    %matplotlib auto # 數(shù)據(jù)透視表: # 統(tǒng)計(jì)各月每天的刷卡金額之和 # month_day_df = pd.pivot_table(data_df,values=\\\"刷卡金額\\\",index=\\\"日\\\",columns=\\\"月份\\\",aggfunc=np.sum) # 用折線圖表示1月份每天的刷卡金額之和 import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation # 導(dǎo)入動(dòng)畫庫 import random import

    2023年04月18日
    瀏覽(21)
  • 基于python的matplotlib、numpy庫實(shí)現(xiàn)的圖形繪制(數(shù)據(jù)可視化)

    基于python的matplotlib、numpy庫實(shí)現(xiàn)的圖形繪制(數(shù)據(jù)可視化)

    1.題目要求 編寫程序,繪制正弦曲線和余弦曲線。 提示:利用numpy的linspace()、sin()或cos()函數(shù)生成樣本數(shù)據(jù)、正弦或余弦值。 2.函數(shù)講解及代碼 ?3.運(yùn)行圖樣 4.擴(kuò)展 1.題目要求 已知實(shí)驗(yàn)中學(xué)舉行了高二期中模擬考試,考試后分別計(jì)算了全體男生、女生各科的平均成績(jī),統(tǒng)計(jì)結(jié)

    2024年02月08日
    瀏覽(34)
  • 數(shù)據(jù)可視化神器!Matplotlib Python教程 | 從入門到精通繪制各種類型的圖形和保存圖形

    數(shù)據(jù)可視化神器!Matplotlib Python教程 | 從入門到精通繪制各種類型的圖形和保存圖形

    大家好,我是愛吃熊掌的魚,今天我要給大家?guī)硪黄腥ら_朗的Matplotlib Python教程。Matplotlib是Python中最流行的數(shù)據(jù)可視化庫之一,它可以幫助我們將數(shù)據(jù)轉(zhuǎn)化為易于理解的圖表和圖形。無論你是初學(xué)者還是專業(yè)人士,Matplotlib都是一個(gè)非常有用的工具。讓我們開始吧! 在開

    2023年04月21日
    瀏覽(23)
  • python氣象數(shù)據(jù)可視化學(xué)習(xí)筆記8——利用matplotlib和ERA5數(shù)據(jù)繪制時(shí)間-高度氣象綜合廓線圖

    python氣象數(shù)據(jù)可視化學(xué)習(xí)筆記8——利用matplotlib和ERA5數(shù)據(jù)繪制時(shí)間-高度氣象綜合廓線圖

    氣象預(yù)報(bào)業(yè)務(wù)中,有種常用的綜合廓線圖,其本質(zhì)上是單個(gè)站點(diǎn)時(shí)間-高度的等高線或者填色圖,其中時(shí)間是從右到左來看。所以準(zhǔn)備好(time, level)的二維數(shù)據(jù),然后依次疊加線條和填色就可以,思路很簡(jiǎn)單,但是繪圖中涉及到了很多細(xì)節(jié)問題,也是琢磨了一陣子,怕以后忘了

    2024年02月05日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包