最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)雙X軸雙Y軸繪圖的示例詳解

 更新時(shí)間:2022年04月20日 09:47:55   作者:geoli91  
這篇文章主要介紹了如何利用fig.add_subplot和axes.twinx().twiny()方法實(shí)現(xiàn)雙X軸雙Y軸繪圖,文中的示例代碼講解詳細(xì),快跟隨小編一起動(dòng)手嘗試一下吧

詐尸人口回歸。這一年忙著灌水忙到頭都掉了,最近在女朋友的提醒下終于想起來博客的賬號(hào)密碼,正好今天灌水的時(shí)候需要畫一個(gè)雙X軸雙Y軸的圖,研究了兩小時(shí)終于用Py實(shí)現(xiàn)了。找資料的過程中沒有發(fā)現(xiàn)有系統(tǒng)的文章,反正代碼都整理出來了,我決定順勢(shì)水一篇。

目前找到的plt實(shí)現(xiàn)雙X軸雙Y軸繪圖方式有兩種:

使用fig.add_subplot方式將兩對(duì)坐標(biāo)系疊加在一個(gè)fig上實(shí)現(xiàn)雙X軸雙Y軸效果。所有調(diào)整均可完美實(shí)現(xiàn),推薦該方式

通過axes.twinx().twiny()方式實(shí)現(xiàn)雙X軸雙Y軸圖形繪制。問題在于對(duì)于第二個(gè)Y軸的各種設(shè)置無效,label可以通過手動(dòng)添加的方式創(chuàng)建并指定顏色,而tick顏色則無法修改??赡苄枰却俜叫迯?fù),或者嘗試先使用 ax1=axes.twinx()方式,從ax1中獲取第二個(gè)Y軸,然后再使用ax2.twiny()創(chuàng)建第二個(gè)X軸。

fig.add_subplot 方式實(shí)現(xiàn)雙X軸雙Y軸繪圖

"""
使用plt,通過fig.add_subplot方式將兩對(duì)坐標(biāo)系疊加在一個(gè)fig上實(shí)現(xiàn)雙X軸雙Y軸效果。
所有調(diào)整均可完美實(shí)現(xiàn),推薦該方式
"""
import matplotlib.pyplot as plt
import numpy as np
 
"""生成數(shù)據(jù)并設(shè)置繪圖參數(shù)"""
x = np.arange(1, 12, 4)
y = np.arange(1, 4, 1)
x2=x*10
y2=y**2
# 設(shè)置兩種繪圖顏色
c1='r'
c2='b'
# 設(shè)置字體大小
fontsize=12
# 設(shè)置畫布大小
width,height=16,14 # 單位為cm;因?yàn)楸4鎴D片時(shí)使用 bbox_inches = 'tight' 可能使圖片尺寸略微放大,所以此處寬度設(shè)置得略小
# 設(shè)置刻度線在坐標(biāo)軸內(nèi)
plt.rcParams['xtick.direction'] = 'in'
plt.rcParams['ytick.direction'] = 'in'
"""繪圖"""
lns=[] # 用于存儲(chǔ)繪圖句柄以合并圖例的list
# 創(chuàng)建畫布并設(shè)置大小
fig=plt.figure()
fig.set_size_inches(width/2.54, height/2.54) # 因?yàn)楫嫴驾斎氪笮槔迕?,此處需轉(zhuǎn)換為英寸,所以除以2.54
# 通過 add_subplot 方式創(chuàng)建兩個(gè)坐標(biāo)軸,相當(dāng)于在同一個(gè)子圖上疊加了兩對(duì)坐標(biāo)系
ax=fig.add_subplot(111, label="1")
ax2=fig.add_subplot(111, label="2", frame_on=False)
# 繪制圖1并將繪圖句柄返回,以便添加合并圖例
lns1=ax.plot(x,y,color=c1,label=c1)
lns=lns1
lns2=ax2.plot(x2,y2, color=c2,label=c2)
lns+=lns2
"""圖形美化"""
# 調(diào)整第二對(duì)坐標(biāo)軸的label和tick位置,以實(shí)現(xiàn)雙X軸雙Y軸效果
ax2.xaxis.tick_top()
ax2.yaxis.tick_right()
ax2.xaxis.set_label_position('top')
ax2.yaxis.set_label_position('right')
# 設(shè)置坐標(biāo)軸標(biāo)注
ax.set_xlabel("X1", color=c1,fontsize=fontsize)
ax.set_ylabel("Y1", color=c1,fontsize=fontsize)
ax2.set_xlabel('X2', color=c2,fontsize=fontsize)
ax2.set_ylabel('Y2', color=c2,fontsize=fontsize)
# 設(shè)置圖表標(biāo)題
fig.suptitle("Title",fontsize=fontsize+2)
# 設(shè)置坐標(biāo)軸刻度顏色
ax.tick_params(axis='x', colors=c1)
ax.tick_params(axis='y', colors=c1)
ax2.tick_params(axis='x', colors=c2)
ax2.tick_params(axis='y', colors=c2)
# 設(shè)置坐標(biāo)軸線顏色
ax.spines["left"].set_color("r") # 修改左側(cè)顏色
ax.spines["right"].set_color("b") # 修改右側(cè)顏色
ax.spines["top"].set_color("b") # 修改上邊顏色
ax.spines["bottom"].set_color("r") # 修改下邊顏色
# 添加圖例
labs = [l.get_label() for l in lns]
ax.legend(lns, labs, loc=0,fontsize=fontsize)
plt.tight_layout()
plt.show()

使用 axes.twinx().twiny() 方式實(shí)現(xiàn)雙X軸雙Y軸繪圖

"""
使用plt,通過 axes.twinx().twiny() 方式實(shí)現(xiàn)雙X軸雙Y軸圖形繪制。
問題在于對(duì)于第二個(gè)Y軸的各種設(shè)置無效,label可以通過手動(dòng)添加的方式創(chuàng)建并指定顏色,而tick顏色則無法修改
"""
import matplotlib.pyplot as plt
import numpy as np
 
"""生成數(shù)據(jù)并設(shè)置繪圖參數(shù)"""
x = np.arange(1, 12, 4)
y = np.arange(1, 4, 1)
x2=x*10
y2=y**2
# 設(shè)置兩種繪圖顏色
c1='r'
c2='b'
# 設(shè)置字體大小
fontsize=12
# 設(shè)置刻度線在坐標(biāo)軸內(nèi)
plt.rcParams['xtick.direction'] = 'in'
plt.rcParams['ytick.direction'] = 'in'
"""繪圖"""
lns=[] # 用于存儲(chǔ)繪圖句柄以合并圖例的list
# 創(chuàng)建畫布
fig,axes=plt.subplots()
fig.set_size_inches(10, 8)
# 繪制圖1并將繪圖句柄返回,以便添加合并圖例
lns1=axes.plot(x,y,color=c1,label=c1)
lns=lns1
# 創(chuàng)建雙x軸雙y軸
twin_axes=axes.twinx().twiny() # 使用畫布的初始坐標(biāo)軸對(duì)象創(chuàng)建第二對(duì)坐標(biāo)軸,類似于在雙x軸的基礎(chǔ)上疊加雙y軸
# 繪制圖2并將繪圖句柄返回,以便添加合并圖例
lns2=twin_axes.plot(x2,y2,color=c2,label=c2) 
lns+=lns2
"""圖形美化"""
# 設(shè)置坐標(biāo)軸標(biāo)注
axes.set_xlabel("X1",color=c1, fontsize=fontsize)
axes.set_ylabel("Y1",color=c1, fontsize=fontsize)
twin_axes.set_xlabel("X2",color=c2, fontsize=fontsize)
twin_axes.set_ylabel("Y2",color=c2, fontsize=fontsize) # 第二個(gè)y軸設(shè)置標(biāo)注無效
# 設(shè)置圖表標(biāo)題
fig.suptitle("Title",fontsize=fontsize+2)
# 設(shè)置第二個(gè)y軸的label;由于set_ylabel無效,因此只能通過該種方式手動(dòng)添加
loc_text_x=np.min(plt.xlim())+np.ptp(plt.xlim())*1.03
loc_text_y=np.min(plt.ylim())+np.ptp(plt.ylim())*0.5
str_text='Y2'
twin_axes.text(loc_text_x, loc_text_y, str_text,rotation=90,color=c2,fontsize=fontsize)
# 設(shè)置坐標(biāo)軸刻度顏色
axes.tick_params('x', colors=c1)
axes.tick_params('y', colors=c1)
twin_axes.tick_params('x', colors=c2)
twin_axes.tick_params('y', colors=c2)
# 設(shè)置坐標(biāo)軸線顏色
twin_axes.spines["left"].set_color("r") # 修改左側(cè)顏色
twin_axes.spines["right"].set_color("b") # 修改右側(cè)顏色;同第二個(gè)y軸的label設(shè)置一樣,該設(shè)置也不起作用
twin_axes.spines["top"].set_color("b") # 修改上邊顏色
twin_axes.spines["bottom"].set_color("r") # 修改下邊顏色
# 添加圖例
# lns = lns1+lns2
labs = [l.get_label() for l in lns]
axes.legend(lns, labs, loc=0,fontsize=fontsize)
plt.tight_layout()
plt.show()

到此這篇關(guān)于Python實(shí)現(xiàn)雙X軸雙Y軸繪圖的示例詳解的文章就介紹到這了,更多相關(guān)Python雙軸繪圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python目錄操作之python遍歷文件夾后將結(jié)果存儲(chǔ)為xml

    python目錄操作之python遍歷文件夾后將結(jié)果存儲(chǔ)為xml

    需求是獲取服務(wù)器某個(gè)目錄下的某些類型的文件,考慮到服務(wù)器即有Linux、又有Windows,所以寫了一個(gè)Python小程序來完成這項(xiàng)工作,大家參考使用吧
    2014-01-01
  • python入門語(yǔ)句基礎(chǔ)之if語(yǔ)句、while語(yǔ)句

    python入門語(yǔ)句基礎(chǔ)之if語(yǔ)句、while語(yǔ)句

    本文介紹了python入門語(yǔ)句基礎(chǔ)之if語(yǔ)句、while語(yǔ)句,if?語(yǔ)句讓你能夠檢查程序的當(dāng)前狀態(tài),并據(jù)此采取相應(yīng)的措施,而for?循環(huán)用于針對(duì)集合中的每個(gè)元素都一個(gè)代碼塊,而?while?循環(huán)不斷地運(yùn)行,直到指定的條件不滿足為止,本文通過示例代碼詳解介紹,需要的朋友參考下吧
    2022-04-04
  • Python添加時(shí)間軸以實(shí)現(xiàn)動(dòng)態(tài)繪圖詳解

    Python添加時(shí)間軸以實(shí)現(xiàn)動(dòng)態(tài)繪圖詳解

    這篇文章主要為大家詳細(xì)介紹了Python如何添加時(shí)間軸以實(shí)現(xiàn)動(dòng)態(tài)繪圖,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以參考一下
    2023-09-09
  • Python中GeoJson和bokeh-1的使用講解

    Python中GeoJson和bokeh-1的使用講解

    今天小編就為大家分享一篇關(guān)于Python中GeoJson和bokeh-1的使用講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • python+opencv實(shí)現(xiàn)高斯平滑濾波

    python+opencv實(shí)現(xiàn)高斯平滑濾波

    這篇文章主要為大家詳細(xì)介紹了python+opencv實(shí)現(xiàn)高斯平滑濾波,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Python用list或dict字段模式讀取文件的方法

    Python用list或dict字段模式讀取文件的方法

    這篇文章主要給大家介紹了Python利用list字段模式或者dict字段模式讀取文件的方法,文中給出了詳細(xì)的介紹和示例代碼,相信對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,有需要的朋友可以跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-01-01
  • 淺析Python迭代器的高級(jí)用法

    淺析Python迭代器的高級(jí)用法

    這篇文章主要介紹了Python迭代器的高級(jí)用法,在實(shí)際場(chǎng)景當(dāng)中非常實(shí)用,可以幫助我們大大簡(jiǎn)化代碼的復(fù)雜度。感興趣的朋友可以了解下
    2020-07-07
  • python四個(gè)坐標(biāo)點(diǎn)對(duì)圖片區(qū)域最小外接矩形進(jìn)行裁剪

    python四個(gè)坐標(biāo)點(diǎn)對(duì)圖片區(qū)域最小外接矩形進(jìn)行裁剪

    在圖像裁剪操作中,opencv和pillow兩個(gè)庫(kù)都具有相應(yīng)的函數(shù),如果想要對(duì)目標(biāo)的最小外接矩形進(jìn)行裁剪該如何操作呢?本文就來詳細(xì)的介紹一下
    2021-06-06
  • Python While循環(huán)語(yǔ)句實(shí)例演示及原理解析

    Python While循環(huán)語(yǔ)句實(shí)例演示及原理解析

    這篇文章主要介紹了Python While循環(huán)語(yǔ)句實(shí)例演示及原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Python已解決NameError: name ‘xxx‘ is not defined

    Python已解決NameError: name ‘xxx‘ is not&nb

    本文主要介紹了Python已解決NameError: name ‘xxx‘ is not defined,解決報(bào)錯(cuò)NameError: name 'xxx' is not defined的關(guān)鍵在于仔細(xì)檢查拼寫、作用域和賦值等問題,感興趣的可以了解一下
    2024-06-06

最新評(píng)論

商洛市| 张家口市| 海口市| 辽中县| 平山县| 班玛县| 黄冈市| 柳河县| 英德市| 霸州市| 奉化市| 平安县| 郑州市| 潍坊市| 石泉县| 贞丰县| 康平县| 彩票| 大英县| 普格县| 增城市| 清丰县| 曲阜市| 津市市| 襄樊市| 平舆县| 昌平区| 始兴县| 迁西县| 元江| 子洲县| 潼关县| 泾阳县| 凤冈县| 奉化市| 循化| 雷波县| 六安市| 塔城市| 梨树县| 邵武市|