繁体   English   中英

向 Matplotlib 折线图上的每第三个标记添加文本

[英]Adding text to every 3rd marker on a Matplotlib line chart

我在每个数据点创建了下面的带有文本的图表。 我想要的是它在标记上显示每 3 个文本。行将保留,但每个数据点的文本应跳过两个。 所以我希望看到同一行,但文本只有 10%、40%、70% 和 100%。

这是我的代码:

import pandas as pd
from matplotlib import pyplot as plt

x = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
y = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct']

df = pd.DataFrame(list(zip(x,y)), columns=['Percentages', 'Months'])

fig, ax = plt.subplots()
ax.plot(df['Months'], df['Percentages'], color='#0076B6', dashes=[6, 2], marker='o')
for j, v in enumerate(df['Percentages']):
    ax.text(j, v+2, str('{:.2f}'.format(round(v, 2)))+'%', fontsize=5.5, horizontalalignment='center')
plt.show()

在此处输入图片说明

希望这是有道理的,有人可以提供帮助。

提前致谢,

阿克塞尔

仅循环每三个元素:

for j, v in enumerate(df['Percentages'][::3]):
    ax.text(j*3, ...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM