Добавление текста к каждому третьему маркеру на линейном графике Matplotlib - PullRequest
0 голосов
/ 23 января 2020

Я создал таблицу ниже с текстом в каждой точке данных. Я хочу, чтобы он показывал каждый третий текст на маркере. Линия оставалась бы, но текст для каждой точки данных должен пропускать два. Поэтому я ожидаю увидеть ту же строку, но текст только на 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()

enter image description here

Надеюсь, что это имеет смысл, и кто-то может помочь.

Заранее спасибо,

Аксель

1 Ответ

1 голос
/ 23 января 2020

L oop только для каждого третьего элемента:

for j, v in enumerate(df['Percentages'][::3]):
    ax.text(j*3, ...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...