【发布时间】:2020-01-21 01:09:26
【问题描述】:
我无法调整下面的图表。
数据框如下所示:
Year Some All Ratio
0 2016 9 157 0.057325
1 2017 13 189 0.068783
2 2018 21 216 0.097222
3 2019 18 190 0.094737
4 2020 28 284 0.098592
这是我想做的:
- 橙色线应位于条形前面。我尝试使用
zorder参数,但没有帮助。我还尝试切换轴对象的顺序,但它没有做任何事情。 - 我想要左边的图例。您会在下面的代码中注意到我使用了一个有点大的
figsize参数。如果我使用较小的,图例会神奇地向左移动,但我不想使用较小的。 - 我想用相应的值标记每个条形顶部的条形图。我尝试遍历每个值并使用
ax.annotate单独注释条形,但我无法自动将值居中。在这个最小的示例中,所有值都是三位数长,但在原始数据中,我有四位数长的数字,我找不到一个很好的方法让它在所有这些数字中居中。 - 最后,我想去掉顶部和右侧的刺。我的代码如下 由于某种原因没有删除它们。
帮助人们入门的代码如下。
data = {'Year': {0: '2016', 1: '2017', 2: '2018', 3: '2019', 4: '2020'},
'Some': {0: 9, 1: 13, 2: 21, 3: 18, 4: 28},
'All': {0: 157, 1: 189, 2: 216, 3: 190, 4: 284},
'Ratio': {0: 0.05732484076433121,
1: 0.06878306878306878,
2: 0.09722222222222222,
3: 0.09473684210526316,
4: 0.09859154929577464}}
df = __import__("pandas").DataFrame(data)
ax = df.plot(x="Year", y="Ratio",
kind="line", linestyle='-', marker='o', color="orange",
figsize=((24,12))
)
df.plot(x="Year", y="All",
kind="bar", ax=ax, secondary_y=True
)
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
【问题讨论】:
标签: python pandas matplotlib