Как добавить стрелки к меткам и процентам на круговой диаграмме?Python

Программы на Python
Гость
Как добавить стрелки к меткам и процентам на круговой диаграмме?

Сообщение Гость »


Я хочу создать с помощью Matplotlib круговую диаграмму, похожую на показанную на изображении ниже.

(https://i.stack.imgur.com/ZDm8z.png)

У меня в основном две проблемы:
[*]Я не могу совместить метки и процентные значения. [*]Я не могу направить стрелки в сторону ярлыков.
Я попробовал выровнять процентное соотношение (автотекст) по положению меток, изменив положение x, но, похоже, получилось иначе. Мой скрипт выглядит так:

plot_type == 'пирог': метки = data.iloc[2:, 1] значения = data.iloc[2:, 2].astype(float) fig1, ax = plt.subplots(figsize=(8, 6), subplot_kw=dict(aspect="equal")) палитра_цвет = sns.color_palette('RdBu_r') клинья, тексты, autotext = ax.pie(values, startangle=90,colors=palette_color, wedgeprops={'edgecolor':'w','linewidth':2}, textprops={'family':'Noto Sans', 'fontsize': 12}, autopct='%1.1f%%') kw = dict(arrowprops=dict(arrowstyle="-"), va="center") для p, label, автотекст в zip(клинья, метки, автотекст): анг = np.deg2rad((p.theta1 + p.theta2) / 2) y = np.sin(анг) х = np.cos(анг) горизонтальное выравнивание = "центр", если abs(x) < abs(y), иначе "вправо", если x < 0, иначе "влево" ann=ax.annotate(label, xy=(0,9 * x, 0,9 * y), xytext=(1,3 * x, 1,3 * y), горизонтальное выравнивание = горизонтальное выравнивание, ** кВт) enx=ann.get_position()[0] autotext.set_fontsize(12) autotext.set_x(enx) # устанавливаем положение x относительно метки autotext.set_y(ann.get_position()[1] + 0.1) # корректируем вертикальное положение plt.title(title, размер шрифта=12, имя шрифта='Noto Sans') plt.tight_layout() plt.show() Моя фигура выглядит так:

(https://i.stack.imgur.com/Lp10a.png)

Можно ли решить вторую проблему с помощью стрел?

Вернуться в «Python»