亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何水平居中條形圖注釋

如何水平居中條形圖注釋

冉冉說 2023-04-18 16:39:35
我正在創建這樣的條形圖:gender = ['M', 'F']numbers = [males,females]bars = plt.bar(gender, numbers, width=0.1, bottom=None, align='center', data=None)for i in range(len(numbers)):    plt.annotate(str(numbers[i]), xy=(gender[i],numbers[i]))plt.show()我想用來plt.annotate在欄的頂部寫下確切的值。但是,該值打印在右側。是否可以將其移動到中心?
查看完整描述

1 回答

?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

  • matplotlib 3.4.2,使用matplotlib.pyplot.bar_label。

繪制列表和注釋

gender = ['M', 'F']

numbers = [1644, 1771]


plt.figure(figsize=(12, 6))

p = plt.bar(gender, numbers, width=0.1, bottom=None, align='center', data=None)


plt.bar_label(p)

plt.show()

用熊貓繪圖并注釋

將列表轉換為數據框并繪制pandas.DataFrame.plot

df = pd.DataFrame({'value': numbers, 'gender': gender})


ax = df.plot(x='gender', kind='bar', figsize=(12, 6), rot=0, legend=False, align='center', width=0.1)


ax.bar_label(ax.containers[0])

plt.show()

原始答案

  • 為了指定注釋的水平對齊方式,使用ha參數

    • matplotlib:文本屬性和布局

    • matplotlib:注釋

    • matplotlib.pyplot.annotate

  • 根據JohanC的建議

    • 一個技巧是使用f'{value}\n'as 字符串和未修改的value(或numbers)作為 y 位置,連同va='center'.

    • 這也適用于plt.text.?或者,plt.annotation接受以“點”或“像素”為單位的偏移量。

選項1

  • 來自lists價值觀和類別

import matplotlib.pyplot as plt


gender = ['M', 'F']

numbers = [1644, 1771]


plt.figure(figsize=(12, 6))

bars = plt.bar(gender, numbers, width=0.1, bottom=None, align='center', data=None)

for i in range(len(numbers)):

? ? plt.annotate(f'{numbers[i]}\n', xy=(gender[i], numbers[i]), ha='center', va='center')

選項 2

  • 來自pandas.DataFrame

  • 用于pandas.DataFrame.iterrows提取注釋所需的位置?xy

    • x是分類'gender'

    • y是數字'value'

import pandas as pd

import matplotlib.pyplot as plt


df = pd.DataFrame({'value': [1771, 1644], 'gender': ['F', 'M']})


plt.figure(figsize=(12, 6))

bars = plt.bar(df.gender, df.value, width=0.1, bottom=None, align='center', data=None)

for idx, (value, gender) in df.iterrows():

? ? plt.annotate(f'{value}\n', xy=(gender, value), ha='center', va='center')

繪圖輸出

http://img1.sycdn.imooc.com/643e5790000188fa06580327.jpg

查看完整回答
反對 回復 2023-04-18
  • 1 回答
  • 0 關注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號