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

Python+Matplotlib繪制雙y軸圖像的示例代碼

 更新時間:2022年04月13日 15:22:17   作者:侯小啾  
這篇文章主要介紹了如何利用python的matplotlib繪制雙Y軸圖像,文中有非常詳細的代碼示例,對正在學習python的小伙伴們有很好地幫助,需要的朋友可以參考下

雙Y軸圖簡介

 雙Y軸圖顧名思義就是在一個圖里有兩個Y軸。這種圖形主要用來展示兩個因變量和一個自變量的關系并且兩個因變量的數(shù)值單位還不同。如我們想要展示不同月份公司銷業(yè)績以及成本的變化情況這時就可以用雙Y軸圖來展示。(因變量銷量和成本具有不同的單位)。

實現(xiàn)思路

繪制雙y軸的思想,也是用到了matplotlib面向對象繪圖的思想。在不指定位置的情況下,在一個畫布上創(chuàng)建出兩個坐標系,其中第一個坐標系正常創(chuàng)建,第二個坐標系則使用專有的twinx()方法創(chuàng)建。

則兩個坐標系的位置重合。第一個坐標系軸在左,通過twinx()方法創(chuàng)建出的坐標系則軸在右。因為有了兩個y軸,所以再對y軸屬性進行操作的時候,則需要面向對象,如果再簡單地使用plt.ylabel()等方法,則只能操作到左軸,而影響不到右軸。

下邊做一個示例,首先是導包和準備數(shù)據(jù),這里準備一組銷量數(shù)據(jù),并計算其增長率,將其體現(xiàn)在右軸。

實現(xiàn)代碼

樣式一

具體代碼如下:

import matplotlib.pyplot as plt
# 生成一組數(shù)據(jù)
x = range(7)
y1 = [2000, 1600, 3000, 6200, 7000, 9800, 11000]
y2 = [1]
for i in range(len(y1)):
    if i+1 == len(y1):
        break
    rate = round(y1[i+1]/y1[i] - 1, 2)
    y2.append(rate)

fig = plt.figure(figsize=(10, 8), facecolor='#ff33ff')
# 字體使用楷體
plt.rcParams['font.sans-serif'] = ['STKAITI']
plt.rcParams['axes.unicode_minus'] = False
# 背景色為cc00ff
plt.rcParams['axes.facecolor'] = '#cc00ff'
ax1 = fig.add_subplot(111)
plt.title('銷售量及其增長率圖示', color='#ffff00', fontsize=25, y=1.04)
plt.xticks(x, ['1月', '2月', '3月', '4月', '5月', '6月', '7月'], color='#ffff00', fontsize=15)
plt.xlabel('月份', color='#ff0033', fontsize=15)
plt.yticks(color='#B22222', fontsize=15)
ax1.bar(x, y1, color='#33ff66', label='left')
ax1.set_ylabel('銷售量(件)', color='#66ff00', fontsize=20)
# 增加一條坐標軸
ax2 = ax1.twinx()
ax2.plot(x, y2, color='#3399ff', linestyle='--', marker='o', linewidth=2)
ax2.set_ylabel("增長率", color='#66ff00', fontsize=20)
ax2.tick_params(axis='y', color='green', labelsize=15, labelcolor='#B22222')
for a, b in zip(x, y2):
    plt.text(a, b+0.02, '%.2f' % b, ha='center', va='bottom', fontsize=15, color='red')
plt.show()

圖像效果如下圖:

樣式二

具體實現(xiàn)代碼如下

%matplotlib inline
import matplotlib.pyplot as plt
import random
import pandas as pd
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['FangSong']  # 指定默認字體
mpl.rcParams['axes.unicode_minus'] = False  # 解決保存圖像是負號'-'顯示為方塊的問題
#數(shù)據(jù)準備
date=["一月","二月","三月","四月","五月","六月","七月","八月"]
sales=[random.randint(10000,25000) for i in range(8)]
cost=[int(i/100)-random.randint(1,20) for i in sales]
df=pd.DataFrame(data={"銷量":sales,"成本":cost},index=date)
 
#繪制第一個Y軸
fig=plt.figure(figsize=(20,8),dpi=80)
ax=fig.add_subplot(111)
lin1=ax.plot(df.index,df["銷量"],marker="o",label="sales")
ax.set_title("雙Y軸圖",size=20)
ax.set_xlabel("時間",size=18)
ax.set_ylabel("銷量(件)",size=18)
for i,j in df["銷量"].items():
    ax.text(i,j+20,str(j),va="bottom",ha="center",size=15)
 
#繪制另一Y軸    
ax1=ax.twinx()
lin2=ax1.plot(df.index,df["成本"],marker="o",color="red",label="cost")
ax1.set_ylabel("成本(元)",size=18)
 
#合并圖例
lins=lin1+lin2
labs=[l.get_label() for l in lins]
ax.legend(lins,labs,loc="upper left",fontsize=15)
 
plt.show()

圖像效果如下圖:

到此這篇關于Python+Matplotlib繪制雙y軸圖像的示例代碼的文章就介紹到這了,更多相關Python Matplotlib雙y軸圖像內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python學習之os包使用教程詳解

    Python學習之os包使用教程詳解

    本文將詳細介紹python的內置包——OS?包。OS?包擁有著普遍的操作系統(tǒng)功能,擁有著各種各樣的函數(shù)來操作系統(tǒng)的驅動功能??靵砀S小編一起學習一下OS包的使用方法吧
    2022-03-03
  • python 根據(jù)excel中顏色區(qū)分讀取的操作

    python 根據(jù)excel中顏色區(qū)分讀取的操作

    這篇文章主要介紹了python 根據(jù)excel中顏色區(qū)分讀取的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • python反轉單鏈表算法題

    python反轉單鏈表算法題

    這篇文章主要為大家詳細介紹了python反轉單鏈表算法題,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Python格式化輸出之format用法詳解

    Python格式化輸出之format用法詳解

    Python中格式化字符串目前有兩種陣營:%和format,這篇文章主要給大家介紹了關于Python格式化輸出之format用法的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-01-01
  • 利用Python如何實現(xiàn)K-means聚類算法

    利用Python如何實現(xiàn)K-means聚類算法

    聚類算法有很多種(幾十種),K-Means是聚類算法中的最常用的一種,算法最大的特點是簡單,好理解,運算速度快,下面這篇文章主要給大家介紹了關于利用Python如何實現(xiàn)K-means聚類算法的相關資料,需要的朋友可以參考下
    2021-08-08
  • Python排序搜索基本算法之插入排序實例分析

    Python排序搜索基本算法之插入排序實例分析

    這篇文章主要介紹了Python排序搜索基本算法之插入排序,結合實例形式分析了基于比較的插入排序和基于交換的插入排序實現(xiàn)技巧,需要的朋友可以參考下
    2017-12-12
  • 用Python寫腳本,實現(xiàn)完全備份和增量備份的示例

    用Python寫腳本,實現(xiàn)完全備份和增量備份的示例

    下面小編就為大家分享一篇用Python寫腳本,實現(xiàn)完全備份和增量備份的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python進度條神器tqdm使用實例詳解

    Python進度條神器tqdm使用實例詳解

    Python進度條神器tqdm是一個快速、可擴展的進度條工具,可以輕松地為Python腳本添加進度條。它可以在循環(huán)中自動計算進度,并在終端中顯示進度條,讓用戶了解程序的運行情況。tqdm還支持多線程和多進程,并且可以自定義進度條的樣式和顯示方式。
    2023-06-06
  • 利用Python制作動態(tài)排名圖的實現(xiàn)代碼

    利用Python制作動態(tài)排名圖的實現(xiàn)代碼

    這篇文章主要介紹了利用Python制作動態(tài)排名圖的實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • Python3處理HTTP請求的實例

    Python3處理HTTP請求的實例

    今天小編就為大家分享一篇Python3處理HTTP請求的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05

最新評論

甘肃省| 满城县| 长宁区| 奇台县| 九龙城区| 筠连县| 宁都县| 盐山县| 宽甸| 灵宝市| 馆陶县| 鄢陵县| 新营市| 东安县| 清水河县| 平陆县| 肥西县| 社会| 云霄县| 益阳市| 汝阳县| 广元市| 天镇县| 盱眙县| 汉沽区| 拜泉县| 东平县| 颍上县| 蓬莱市| 海伦市| 蚌埠市| 灵石县| 水富县| 南江县| 朝阳县| 高淳县| 台安县| 左云县| 凤城市| 内丘县| 三明市|