提问人:shoggananna 提问时间:11/13/2023 最后编辑:Trenton McKinneyshoggananna 更新时间:11/14/2023 访问量:64
如何在secondary_y上添加条形值、set_ylim和set_ylabel [duplicate]
How to add bar values, set_ylim, and set_ylabel on secondary_y [duplicate]
问:
这个问题在这里已经有答案了:
熊猫次轴 (2 个答案)
将标签值添加到条形图和折线图 (2 个答案)
如何使用secondary_y调整熊猫图的刻度和标签大小 (1 个答案)
在 Pandas 中格式化辅助 Y 轴 (1 个答案)
10天前关闭。
以下脚本目前有 2 个问题
无法向集合 8/9 添加条形标签
第 8 组是“超乎寻常的”,无论我设置什么 ylim。
import pandas as pd import numpy as np import matplotlib.pyplot as plt categories = ['Cat1', 'Cat2', 'Cat3', 'Cat4', 'Cat5'] data_sets = {'Set1': [0.151, 0.015, 0.110, 0.204, 0.110], 'Set2': [0.146, 0.025, 0.088, 0.151, 0.088], 'Set3': [0.161, 0.027, 0.122, 0.217, 0.122], 'Set4': [0.145, 0.015, 0.095, 0.174, 0.095], 'Set5': [0.216, 0.020, 0.160, 0.300, 0.160], 'Set6': [0.069, 0.050, 0.069, 0.088, 0.088], 'Set7': [0.069, 0.050, 0.069, 0.088, 0.088], 'Set8': [132, 131, 139, 137, 135], 'Set9': [132, 131, 139, 137, 135], } df = pd.DataFrame(data_sets, index=categories) ax = df.plot(kind= 'bar',secondary_y= 'Set9', rot= 0, ylabel = 'test', ylim = [0, .35], grid=True ) plt.ylabel('Check') for bar in ax.containers: ax.bar_label(bar, rotation=90) fig = ax.get_figure() ax = fig.get_axes() ax[1].set_ylim(0, 200)
答:
1赞
4 revsTrenton McKinney
#1
访问右轴,如副本和在次 y 轴上绘图中所示。ax.right_ax
import pandas as pd
categories = ['Cat1', 'Cat2', 'Cat3', 'Cat4', 'Cat5']
data_sets =\
{'Set1': [0.151, 0.015, 0.11, 0.204, 0.11],
'Set2': [0.146, 0.025, 0.088, 0.151, 0.088],
'Set3': [0.161, 0.027, 0.122, 0.217, 0.122],
'Set4': [0.145, 0.015, 0.095, 0.174, 0.095],
'Set5': [0.216, 0.02, 0.16, 0.3, 0.16],
'Set6': [0.069, 0.05, 0.069, 0.088, 0.088],
'Set7': [0.069, 0.05, 0.069, 0.088, 0.088],
'Set8': [132, 131, 139, 137, 135],
'Set9': [132, 131, 139, 137, 135]}
df = pd.DataFrame(data_sets, index=categories)
ax = df.plot(kind='bar', secondary_y=['Set8', 'Set9'], rot=0, width=0.9,
ylabel='test', ylim=[0, .35], grid=True, figsize=(10, 10))
ax.right_ax.set_ylabel('Check')
ax.right_ax.set_ylim(0, 200)
for bar in ax.containers:
ax.bar_label(bar, rotation=90, padding=3)
for bar in ax.right_ax.containers:
ax.right_ax.bar_label(bar, rotation=90, padding=3)
评论