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

使用Python實現(xiàn)嵌套繪圖并為條形圖添加自定義標(biāo)注

 更新時間:2024年02月27日 08:36:06   作者:geoli91  
論文繪圖時經(jīng)常需要多圖嵌套,正好最近繪圖用到了,所以這篇文章主要為大家詳細(xì)介紹了如何使用Python實現(xiàn)嵌套繪圖并為條形圖添加自定義標(biāo)注,感興趣的可以了解下

論文繪圖時經(jīng)常需要多圖嵌套,正好最近繪圖用到了,記錄一下使用Python實現(xiàn)多圖嵌套的過程。

首先,實現(xiàn) Seaborn 分別繪制折線圖和柱狀圖。

'''繪制折線圖'''
import seaborn as sns
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings("ignore", "use_inf_as_na")
 
# 獲取繪圖數(shù)據(jù)
df_fmri=sns.load_dataset("fmri")
# 繪制折線圖
sns.lineplot(data=df_fmri, x="timepoint", y="signal", hue="event")
 
# 創(chuàng)建繪圖數(shù)據(jù)
df_bar=df_fmri[['subject','signal']].groupby('subject',observed=True).agg('max').reset_index()
# 繪制條形圖
ax_bar=sns.barplot(
    data=df_bar,
    x="subject", y="signal",
    palette='Set2',
)

接下來實現(xiàn)條形圖與折線圖的嵌套,核心是使用 inset_axes 函數(shù)創(chuàng)建一個新的軸,然后再繪制第二個圖時指定繪圖的軸為剛才新建的軸。

from mpl_toolkits.axes_grid1.inset_locator import inset_axes
import matplotlib.pyplot as plt
 
# 獲取繪圖數(shù)據(jù)
df_fmri = sns.load_dataset("fmri")
df_bar=df_fmri[['subject','signal']].groupby('subject',observed=True).agg('max').reset_index()
 
# 繪制折線圖
ax=sns.lineplot(data=df_fmri, x="timepoint", y="signal", hue="event")
plt.legend(loc='upper left')
 
# 使用 inset_axes 函數(shù)添加一個軸,用來顯示條形圖
ax_bar = inset_axes(
    ax, # 父軸
    width='40%', height='50%', # 新軸相對于父軸的長寬比例
    loc='lower left', # 新軸的錨點相對于父軸的位置
    bbox_to_anchor=(0.55,0.45,1,1), # 新軸的bbox
    bbox_transform=ax.transAxes # bbox_to_anchor 的坐標(biāo)基準(zhǔn)
    )
# 繪制條形圖
ax_bar=sns.barplot(
    data=df_bar,
    x="subject", y="signal", 
    palette='Set2',
    ax=ax_bar
)

可以看到,右上角的條形圖顯得很擁擠,x軸標(biāo)注相互重疊比較嚴(yán)重,因此,考慮將條形圖由縱向變?yōu)闄M向,在 Seaborn 繪圖時交換 x 軸和 y 軸就能實現(xiàn)。此外,bar上方的空間也比較大,考慮將x軸的標(biāo)注標(biāo)注到bar上方,以進(jìn)一步節(jié)約空間。bar的標(biāo)注可以通過 ax.bar_label() 函數(shù)實現(xiàn),該函數(shù)不僅可以直接標(biāo)注每個bar的數(shù)值,也可以自定義要標(biāo)注的內(nèi)容和格式。修改后的代碼和結(jié)果圖如下:

from mpl_toolkits.axes_grid1.inset_locator import inset_axes
import matplotlib.pyplot as plt
 
# 準(zhǔn)備數(shù)據(jù)
df_fmri = sns.load_dataset("fmri")
df_bar=df_fmri[['subject','signal']].groupby('subject',observed=True).agg('max').reset_index()
 
# 繪制折線圖
ax=sns.lineplot(data=df_fmri, x="timepoint", y="signal", hue="event")
plt.legend(loc='upper left')
 
# 使用 inset_axes 函數(shù)添加一個軸,用來顯示條形圖
ax_bar = inset_axes(
    ax, # 父軸
    width='47%', height='52%', # 新軸相對于父軸的長寬比例
    loc='lower left', # 新軸的錨點相對于父軸的位置
    bbox_to_anchor=(0.5,0.44,1,1), # 新軸的bbox
    bbox_transform=ax.transAxes # bbox_to_anchor 的坐標(biāo)基準(zhǔn)
    )
# 繪制條形圖
ax_bar=sns.barplot(
    data=df_bar,
    # 交換 x 軸和 y 軸列名實現(xiàn)橫向條形圖
    x="signal", y="subject", 
    palette='Set2',
    ax=ax_bar
)
# 使用 sns 的 bar_label 函數(shù)為條形圖添加標(biāo)注
ax_bar.bar_label(
    ax_bar.containers[0], # 條形圖的 BarContainer 對象
    labels=df_bar['subject'], # 要標(biāo)注的labels,默認(rèn)為 bar 的數(shù)值,此處傳入自定義的label序列
    label_type='edge', # 標(biāo)注顯示的位置,可選 edge 或 center
    padding=2, # 標(biāo)注與bar之間的距離
    # fmt='%.2f' # 標(biāo)注格式化字符串
    fontsize=10 # 設(shè)置標(biāo)注的字體大小
    )
# 為了避免標(biāo)注超出繪圖范圍,將x軸的繪圖范圍擴(kuò)大
plt.xlim(0,0.62)
# 隱藏左側(cè)y軸
ax_bar.yaxis.set_visible(False)
# 去除多余的軸線
sns.despine()

打完收工!

到此這篇關(guān)于使用Python實現(xiàn)嵌套繪圖并為條形圖添加自定義標(biāo)注的文章就介紹到這了,更多相關(guān)Python嵌套繪圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決pyttsx3無法封裝的問題

    解決pyttsx3無法封裝的問題

    今天小編就為大家分享一篇解決pyttsx3無法封裝的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python如何利用%操作符格式化字符串詳解

    Python如何利用%操作符格式化字符串詳解

    %是Python風(fēng)格的字符串格式化操作符,非常類似C語言里的printf()函數(shù)的字符串格式化,下面這篇文章主要給大家介紹了關(guān)于Python如何利用%操作符格式化字符串的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • 利用Python制作百度圖片下載器

    利用Python制作百度圖片下載器

    這篇文章主要介紹了利用Python制作的一個百度圖片下載器,可以顯示實時的下載進(jìn)度,文中的示例代碼講解詳細(xì),感興趣的可以跟隨小編學(xué)習(xí)一下
    2022-01-01
  • Django表單提交后實現(xiàn)獲取相同name的不同value值

    Django表單提交后實現(xiàn)獲取相同name的不同value值

    這篇文章主要介紹了Django表單提交后實現(xiàn)獲取相同name的不同value值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • PyCharm最新激活碼PyCharm2020.2.3有效

    PyCharm最新激活碼PyCharm2020.2.3有效

    這篇文章為大家提供了PyCharm最新激活碼PyCharm2020.2.3有效,需要的朋友可以參考下
    2020-11-11
  • Python數(shù)據(jù)分析之使用matplotlib繪制折線圖、柱狀圖和柱線混合圖

    Python數(shù)據(jù)分析之使用matplotlib繪制折線圖、柱狀圖和柱線混合圖

    matplotlib是python的一個模塊,用于繪制各種圖形,今天介紹一下折線圖的繪制,下面這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)分析之使用matplotlib繪制折線圖、柱狀圖和柱線混合圖的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • Matplotlib繪圖基礎(chǔ)之地圖繪制詳解

    Matplotlib繪圖基礎(chǔ)之地圖繪制詳解

    如果分析的數(shù)據(jù)與地域相關(guān),那么,把分析結(jié)果結(jié)合地圖一起展示的話,會讓可視化的效果得到極大的提升,下面就來講講如何利用Matplotlib一步步通過地圖來展示分析結(jié)果吧
    2023-08-08
  • Django查詢數(shù)據(jù)庫的性能優(yōu)化示例代碼

    Django查詢數(shù)據(jù)庫的性能優(yōu)化示例代碼

    這篇文章主要給大家介紹了關(guān)于Django查詢數(shù)據(jù)庫性能優(yōu)化的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • Python實現(xiàn)拷貝多個文件到同一目錄的方法

    Python實現(xiàn)拷貝多個文件到同一目錄的方法

    這篇文章主要介紹了Python實現(xiàn)拷貝多個文件到同一目錄的方法,涉及Python針對文件與目錄的遍歷、復(fù)制等相關(guān)操作技巧,需要的朋友可以參考下
    2016-09-09
  • python獲取文件后綴名及批量更新目錄下文件后綴名的方法

    python獲取文件后綴名及批量更新目錄下文件后綴名的方法

    這篇文章主要介紹了python獲取文件后綴名及批量更新目錄下文件后綴名的方法,實例展示了Python針對文件后綴名的遍歷查找及修改等常用操作技巧,并對其中的關(guān)鍵知識點進(jìn)行了分析與總結(jié),需要的朋友可以參考下
    2014-11-11

最新評論

正宁县| 常熟市| 阿城市| 宁武县| 尚义县| 枝江市| 庆城县| 乐清市| 汉川市| 饶平县| 泰来县| 炎陵县| 灵宝市| 闻喜县| 青岛市| 修水县| 寿宁县| 兴国县| 马关县| 泰宁县| 雅江县| 天门市| 奎屯市| 锡林浩特市| 阜平县| 苍山县| 徐州市| 塘沽区| 于田县| 吉安市| 台山市| 新民市| 无棣县| 社旗县| 盐城市| 尉犁县| 团风县| 株洲市| 阜南县| 威海市| 玉田县|