Диаграмма с перекрывающимися метками
Это код, который я пробовал.
импортировать matplotlib.pyplot как plt
импортировать numpy как np
Data< /h1>
labels = ["225 г муки", "90 г сахара", "1 яйцо", "60 г сливочного масла", "100 мл молока", "1/2 пакета дрожжей", "abcd", "efg", "hik"]
размеры = [225, 90, 1, 5, 200, 1, 3, 100, 5]
рис, топор = plt.subplots(figsize=(7, 4), subplot_kw=dict(aspect="equal"))
explode = [0.01] * len(sizes) # Небольшое развертывание для всех сегментов
клинья, texts = ax.pie(sizes, Explode=explode, radius=1.2, startangle=90, wedgeprops=dict(width=0.4))
centre_circle = plt.Circle((0, 0), 0,40, fc='white')
ax.add_artist(center_circle)
kw = dict(arrowprops=dict(arrowstyle="-"), zorder=0, va="center")
для i, p в перечислении(клинья):
Код: Выделить всё
ang = (p.theta2 - p.theta1) / 2. + p.theta1
x = np.cos(np.deg2rad(ang))
y = np.sin(np.deg2rad(ang))
yc = np.arcsin(y)/(np.pi/2)
horizontalalignment = {1: "left", -1: "right"}[int(np.sign(x))]
connectionstyle = f"angle,angleA=0,angleB={ang}"
ax.annotate(labels, xy=(0.8x, 0,8y), xytext=((1+(len(labels)%2)*0,6)*np.sign(x), 1,4 * yc),
horizontalalignment=horizontalalignment, fontsize=10, **kw)
Добавить заголовок
ax.set_title("Кольцевая диаграмма", fontsize =14)
Показать график
plt.show
()
Подробнее здесь: https://stackoverflow.com/questions/792 ... onut-graph
Мобильная версия