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

python繪制柱狀圖,并添加標(biāo)簽

這篇具有很好參考價(jià)值的文章主要介紹了python繪制柱狀圖,并添加標(biāo)簽。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1. 繪圖

利用下面的代碼,繪制柱狀圖。

#  season number , warning!!! not percent
def season_number(data_all_profile, output_num_season_png, sector_id=None, terrain=None, label=None):
    df_season = data_all_profile['season'].value_counts()
    # 希望的排序列表
    desired_order = ['spring', 'summer', 'autumn', 'winter']

    # 使用reindex方法按指定順序重新排序
    sorted_result = df_season.reindex(desired_order)

    df_season = pd.DataFrame(sorted_result)
    df_season.rename(columns={'season': 'count'}, inplace=True)
    df_season = df_season.reset_index().rename(columns={'index': 'season'})

    # 創(chuàng)建柱狀圖
    plt.figure(figsize=(5, 3))
    bars = plt.bar(df_season['season'], df_season['count'], width=0.3)

    # 添加數(shù)據(jù)標(biāo)簽
    for bar in bars:
        height = bar.get_height()
        plt.annotate(f'{height}',
                     xy=(bar.get_x() + bar.get_width() / 2, height),
                     xytext=(0, 3),  # 3 points vertical offset
                     textcoords="offset points",
                     ha='center', va='bottom')

    # 調(diào)整y軸上限,以確保標(biāo)簽可見(jiàn)
    plt.ylim(0, max(df_season['count']) * 1.1)

    plt.xticks(rotation=0)
    plt.xlabel('season', fontsize=11)
    plt.ylabel('數(shù)量(個(gè))', fontsize=11)
    plt.title('各季節(jié)風(fēng)廓線數(shù)量分布')
    plt.title(f'{terrain}-區(qū)域{sector_id}各季節(jié)風(fēng)廓線數(shù)量分布')
    plt.tight_layout()
    plt.savefig(output_num_season_png)  # 將圖片保存為 output.png 文件
    plt.close()

csdnpython柱狀圖添加數(shù)據(jù)標(biāo)簽,# 9.繪圖與可視化,python,開(kāi)發(fā)語(yǔ)言

2. 解讀

2.1 繪制標(biāo)簽

難點(diǎn):繪制標(biāo)簽

# 添加數(shù)據(jù)標(biāo)簽
for bar in bars:
    height = bar.get_height()
    plt.annotate(f'{height}',
                 xy=(bar.get_x() + bar.get_width() / 2, height),
                 xytext=(0, 3),  # 3 points vertical offset
                 textcoords="offset points",
                 ha='center', va='bottom')

bar.get_height()用于獲取柱子的高度,也就是柱狀圖中每個(gè)柱子的高度值。在上面的代碼中,我們使用這個(gè)高度值來(lái)確定要在柱子上方添加的數(shù)據(jù)標(biāo)簽的位置。

具體來(lái)說(shuō),這行代碼:

height = bar.get_height()

height設(shè)置為當(dāng)前柱子的高度。然后,在plt.annotate()函數(shù)中,我們使用xy參數(shù)將標(biāo)簽的位置設(shè)置在柱子的中間,而height表示了柱子的高度,因此數(shù)據(jù)標(biāo)簽會(huì)被添加到每個(gè)柱子的中間位置,以顯示柱子所代表的數(shù)據(jù)值。

這是一種常見(jiàn)的用法,用于在柱狀圖中添加數(shù)據(jù)標(biāo)簽。

2.2 代碼解讀

解釋?zhuān)?code>xy=(bar.get_x() + bar.get_width() / 2, height)

代碼 xy=(bar.get_x() + bar.get_width() / 2, height) 主要用于確定要放置數(shù)據(jù)標(biāo)簽的位置,具體來(lái)說(shuō):

  1. bar.get_x() 獲取柱子的左邊界的 x 坐標(biāo)。
  2. bar.get_width() 獲取柱子的寬度。
  3. bar.get_x() + bar.get_width() / 2 計(jì)算出柱子的中心 x 坐標(biāo)。
  4. height 是柱子的高度,即柱子所代表的數(shù)據(jù)值。

這行代碼將數(shù)據(jù)標(biāo)簽的位置設(shè)置為柱子的中心,橫坐標(biāo)為柱子中心的 x 坐標(biāo),縱坐標(biāo)為柱子的高度,這樣標(biāo)簽就會(huì)位于柱子的頂部中央,以顯示柱子所代表的具體數(shù)據(jù)值。

例如,假設(shè)某個(gè)柱子的左邊界的 x 坐標(biāo)是 10,寬度是 2,高度是 20,那么這行代碼的計(jì)算如下:

  1. bar.get_x() 得到 10。
  2. bar.get_width() 得到 2。
  3. bar.get_x() + bar.get_width() / 2 得到 11,這是柱子的中心 x 坐標(biāo)。
  4. height 得到 20,柱子的高度。

因此,xy參數(shù)被設(shè)置為 (11, 20),這是數(shù)據(jù)標(biāo)簽的位置,使得標(biāo)簽位于柱子的中央頂部,以顯示數(shù)據(jù)值 20。這種方法可確保數(shù)據(jù)標(biāo)簽位于柱子的合適位置,使得圖表更易于理解。

2.3 xytext=(0, 3)

xytext 參數(shù)用于指定標(biāo)簽文本的偏移量,它是一個(gè)二元組,表示文本相對(duì)于 xy 參數(shù)指定的坐標(biāo)的偏移量,其中第一個(gè)值表示水平偏移,第二個(gè)值表示垂直偏移。

在代碼中,xytext=(0, 3) 的含義是:

  • 水平偏移為 0,表示標(biāo)簽文本在水平方向上不進(jìn)行偏移。
  • 垂直偏移為 3,表示標(biāo)簽文本在垂直方向上相對(duì)于 xy 參數(shù)指定的坐標(biāo)向上偏移 3 個(gè)單位。

這個(gè)偏移的目的是為了讓數(shù)據(jù)標(biāo)簽稍微上移一點(diǎn),以使標(biāo)簽文本不會(huì)與柱子的頂部重疊,從而更清晰地顯示數(shù)據(jù)標(biāo)簽。通過(guò)微小的垂直偏移,可以改善標(biāo)簽的可讀性,確保它們不會(huì)覆蓋柱子或其他元素。

您可以根據(jù)需要調(diào)整 xytext 參數(shù)的值,以更好地控制標(biāo)簽的位置和外觀。

2.4 textcoords=“offset points”

textcoords="offset points"annotate 函數(shù)中的一個(gè)參數(shù),用于指定文本注釋的坐標(biāo)系統(tǒng)。具體來(lái)說(shuō),它告訴函數(shù)如何解釋 xyxytext 參數(shù)中的坐標(biāo)值。

在這種情況下,textcoords 被設(shè)置為 "offset points",意味著 xyxytext 中的坐標(biāo)值將被解釋為以點(diǎn)(points)為單位的偏移量。這是為了方便指定相對(duì)于柱子或數(shù)據(jù)點(diǎn)的偏移量,而不是使用絕對(duì)的坐標(biāo)值。

例如,如果您設(shè)置 xy=(11, 20)xytext=(0, 3),那么這意味著:

  • xy=(11, 20) 表示數(shù)據(jù)標(biāo)簽的基準(zhǔn)點(diǎn)位于柱子中心的水平位置 x=11,垂直位置 y=20。
  • xytext=(0, 3) 表示相對(duì)于 xy 指定的點(diǎn),文本標(biāo)簽將向水平和垂直方向分別偏移 0 個(gè)點(diǎn)和 3 個(gè)點(diǎn)。

通過(guò)這種方式,您可以方便地指定相對(duì)于數(shù)據(jù)點(diǎn)的偏移量,以更好地控制標(biāo)簽的位置。如果您選擇其他坐標(biāo)系統(tǒng),例如 "figure fraction""axes fraction",那么坐標(biāo)值將被解釋為相對(duì)于圖形或軸的比例位置。

havaannotate 函數(shù)中的參數(shù),用于控制文本注釋?zhuān)?biāo)簽)的水平對(duì)齊和垂直對(duì)齊方式。

  • ha 表示水平對(duì)齊方式,它有以下可能的取值:

    • 'center':文本水平居中對(duì)齊,默認(rèn)值。
    • 'left':文本左對(duì)齊。
    • 'right':文本右對(duì)齊。
  • va 表示垂直對(duì)齊方式,它有以下可能的取值:

    • 'center':文本垂直居中對(duì)齊,默認(rèn)值。
    • 'top':文本頂部對(duì)齊。
    • 'bottom':文本底部對(duì)齊。

在您提供的代碼中,ha='center' 表示文本水平居中對(duì)齊,va='bottom' 表示文本底部對(duì)齊。這意味著數(shù)據(jù)標(biāo)簽的文本將以底部對(duì)齊到 xy 指定的點(diǎn)。通常,這是一個(gè)常見(jiàn)的設(shè)置,以確保標(biāo)簽文本在柱子或數(shù)據(jù)點(diǎn)的底部顯示,使其更易于閱讀。

如果需要,您可以根據(jù)需要更改這些參數(shù),以調(diào)整標(biāo)簽的水平和垂直對(duì)齊方式,以滿足您的可視化需求。例如,將 va 設(shè)置為 'center' 將使文本垂直居中對(duì)齊,而將 ha 設(shè)置為 'left' 將使文本左對(duì)齊。

3.標(biāo)簽獲?。ń庾x)

for category in normalized_table_T.index:
    for i, value in enumerate(normalized_table_T.loc[category]):
        plt.text(i, value, f'{value:.2f}', ha='center', va='bottom', fontsize=10,
                 color=colors[normalized_table_T.index.get_loc(category)])

這段代碼主要是用于在圖表上為每個(gè)數(shù)據(jù)點(diǎn)添加文本標(biāo)簽。下面是對(duì)代碼的逐行解讀:

  1. for category in normalized_table_T.index::這一行是遍歷normalized_table_T的索引,其中normalized_table_T是一個(gè)pandas DataFrame。

  2. for i, value in enumerate(normalized_table_T.loc[category])::這一行是遍歷給定類(lèi)別category下的所有值。enumerate用于獲取每個(gè)值的索引i和值value。

  3. plt.text(i, value, f'{value:.2f}', ha='center', va='bottom', fontsize=10, color=colors[normalized_table_T.index.get_loc(category)]):這一行是用于在圖表上添加文本標(biāo)簽的。

    • i, value:這是文本標(biāo)簽的位置。i是x坐標(biāo),value是y坐標(biāo)。
    • f'{value:.2f}':這是要顯示的文本,它使用f-string格式化,顯示value的值并保留兩位小數(shù)。
    • ha='center', va='bottom':這些是文本對(duì)齊選項(xiàng)。ha是水平對(duì)齊方式,這里設(shè)置為居中;va是垂直對(duì)齊方式,這里設(shè)置為底部。
    • fontsize=10:設(shè)置字體大小為10。
    • color=colors[normalized_table_T.index.get_loc(category)]:設(shè)置文本顏色。它從colors列表中獲取一個(gè)顏色值,這個(gè)列表應(yīng)該事先定義好了。normalized_table_T.index.get_loc(category)獲取categorynormalized_table_T索引中的位置,然后用這個(gè)位置從colors列表中獲取顏色。

總的來(lái)說(shuō),這段代碼遍歷一個(gè)名為normalized_table_T的DataFrame,并在每個(gè)數(shù)據(jù)點(diǎn)上添加一個(gè)顯示其值的文本標(biāo)簽,這些標(biāo)簽在圖表上是居中且位于數(shù)據(jù)點(diǎn)的下方,字體大小為10,顏色根據(jù)類(lèi)別從colors列表中獲取。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-802060.html

到了這里,關(guān)于python繪制柱狀圖,并添加標(biāo)簽的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(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)文章

  • Pearson相關(guān)性分析& plot繪圖(相關(guān)性系數(shù)柱狀圖、繪制非空值數(shù)量柱狀圖)

    Pearson相關(guān)性分析& plot繪圖(相關(guān)性系數(shù)柱狀圖、繪制非空值數(shù)量柱狀圖)

    Pearson相關(guān)性分析是一種用于檢測(cè)兩個(gè)變量之間線性關(guān)系強(qiáng)度的統(tǒng)計(jì)方法,其結(jié)果介于-1和1之間。一個(gè)相關(guān)系數(shù)為1表示完全正相關(guān),-1表示完全負(fù)相關(guān),0則表示沒(méi)有線性關(guān)系。 Pearson相關(guān)性分析假設(shè)數(shù)據(jù)來(lái)自正態(tài)分布,并且對(duì)異常值敏感。

    2024年02月09日
    瀏覽(24)
  • Python Matplotlib數(shù)據(jù)可視化繪圖之(一)————柱狀圖

    Python Matplotlib數(shù)據(jù)可視化繪圖之(一)————柱狀圖

    本文我們主要介紹利用Python中的Matplotlib模塊進(jìn)行幾種柱狀圖的畫(huà)法,包括整張圖片只有一種顏色的不分組柱狀圖、整張圖片有好幾種顏色的不分組柱狀圖、整張圖片有好幾種顏色的分組柱狀圖等。 主要利用Python中的Matplotlib模塊完成該功能。 表格如下(示例): 語(yǔ)言種類(lèi)

    2024年02月06日
    瀏覽(26)
  • 探索數(shù)據(jù)之美:初步學(xué)習(xí) Python 柱狀圖繪制

    探索數(shù)據(jù)之美:初步學(xué)習(xí) Python 柱狀圖繪制

    pyecharts 是一個(gè)基于 Echarts 的 Python 圖表庫(kù),它提供了豐富的圖表類(lèi)型和交互功能。可以使用使用 pyecharts 創(chuàng)建柱狀圖 首先,安裝 pyecharts 庫(kù)。如果沒(méi)有安裝,可以使用以下命令安裝: 然后,創(chuàng)建一個(gè)簡(jiǎn)單的柱狀圖: 在這個(gè)示例中,首先導(dǎo)入 pyecharts 的必要模塊。然后,創(chuàng)建一

    2024年02月12日
    瀏覽(18)
  • 跟著Nature Communications學(xué)作圖:紋理柱狀圖+添加顯著性標(biāo)簽!

    跟著Nature Communications學(xué)作圖:紋理柱狀圖+添加顯著性標(biāo)簽!

    ?? 跟著「Nature Communications」學(xué)作圖,今天主要通過(guò)復(fù)刻N(yùn)C文章中的一張主圖來(lái)鞏固先前分享過(guò)的知識(shí)點(diǎn),比如紋理柱狀圖、 添加顯著性標(biāo)簽、拼圖等,其中還會(huì)涉及數(shù)據(jù)處理的相關(guān)細(xì)節(jié)和具體過(guò)程。 主要復(fù)現(xiàn)紅框部分,右側(cè)的cd圖與框中的圖是同類(lèi)型的,只不過(guò)需要構(gòu)建更

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

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

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

    2024年02月10日
    瀏覽(28)
  • 【Python數(shù)據(jù)可視化】matplotlib之繪制常用圖形:折線圖、柱狀圖(條形圖)、餅圖和直方圖

    【Python數(shù)據(jù)可視化】matplotlib之繪制常用圖形:折線圖、柱狀圖(條形圖)、餅圖和直方圖

    文章傳送門(mén) Python 數(shù)據(jù)可視化 matplotlib之繪制常用圖形:折線圖、柱狀圖(條形圖)、餅圖和直方圖 matplotlib之設(shè)置坐標(biāo):添加坐標(biāo)軸名字、設(shè)置坐標(biāo)范圍、設(shè)置主次刻度、坐標(biāo)軸文字旋轉(zhuǎn)并標(biāo)出坐標(biāo)值 matplotlib之增加圖形內(nèi)容:設(shè)置圖例、設(shè)置中文標(biāo)題、設(shè)置網(wǎng)格效果 matplo

    2024年01月16日
    瀏覽(31)
  • python如何繪制柱狀圖

    python如何繪制柱狀圖

    安裝兩種插件 柱狀圖繪制步驟 導(dǎo)入 matplotlib.pyplot 模塊 準(zhǔn)備數(shù)據(jù),可以使用 numpy/pandas 整理數(shù)據(jù) 調(diào)用 pyplot.bar() 繪制柱狀圖 上代碼 效果圖 函數(shù)解析 plt.bar() 用于畫(huà)柱狀圖,還可以使用 plt.plot() 繪制折線圖 plt.xlabel() plt.ylabel() 用于標(biāo)注x軸、y軸 plt.title() 用于給圖片添加標(biāo)題

    2024年02月11日
    瀏覽(24)
  • Python繪制柱狀圖堆疊圖

    Python繪制柱狀圖堆疊圖

    本文詳細(xì)介紹如何使用 Matplotlib 繪制柱狀堆疊圖 示例:pandas 是基于NumPy 的一種工具,該工具是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的。 開(kāi)始繪制柱狀堆疊圖之前,我們需要生成實(shí)驗(yàn)數(shù)據(jù)。在本案例中,我們可以使用 NumPy 庫(kù)生成兩個(gè)數(shù)組 y1 和 y2 來(lái)分別表示產(chǎn)品 A 和 B 在五個(gè)不同城

    2024年02月07日
    瀏覽(27)
  • 超詳細(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入門(mén)到進(jìn)階,

    2023年04月08日
    瀏覽(27)
  • 添加數(shù)據(jù)維度并使用Python繪制5D散點(diǎn)圖

    添加數(shù)據(jù)維度并使用Python繪制5D散點(diǎn)圖

    大家好,散點(diǎn)圖通常用于比較2個(gè)不同特征以確定它們之間的關(guān)系,散點(diǎn)圖也可以添加更多的維度來(lái)反映數(shù)據(jù),例如使用顏色、氣泡大小等。在本文中,將介紹如何繪制一個(gè)五維的散點(diǎn)圖。 數(shù)據(jù)集: ?讓我們從二維開(kāi)始,簡(jiǎn)單地看一下 Healthy_life_expectancy_at_birth 和 Log_GDP_per_ca

    2024年02月12日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包