График из нескольких круговых диаграмм

Рейтинг: 0Ответов: 1Опубликовано: 15.03.2023

Как нарисовать точечный график (координаты x, y) в matplotlib и plotly, где точка- это круговая диаграмма (зависит от a, b)? введите сюда описание изображения Пример графика, где вместо точек должны быть круговые диаграммы от параметров a и b в процентном соотношении. Пример: a=1,b=1 то будет диаграмма состоящая из 2x полукругов

Ответы

▲ 3Принят

Можно сделать так:

import matplotlib.pyplot as plt
import numpy as np

x = [1,2,3,4] # координаты x
y = [1,2,3,4] # координаты y
ab = [[1,1], [1,2], [3,7], [15,2]] # пропорции для каждой круговой диаграммы
                                   # порядок соотвутствует порядку кааординат 

r = min(min(abs(np.diff(x))), min(abs(np.diff(y))))*.4 # вычисление радиуса круговой диаграммы
# смысл этого расчета - получить радиус заведомо меньший самого маленького
# расстояния между соседними диаграммами, чтобы избежать наложения
    
fig, ax = plt.subplots(figsize=(5,5)) # создание фигуры и холста
for i in range(len(ab)):
    wedges, texts = ax.pie(ab[i],                 # отрисовка диаграм - пропорции из списка
                           center=(x[i],y[i]),    # центры диаграмм в соответствии с координатами
                           radius =r,            # радиус, который мы получили ранее
                           colors=["peachpuff", "sandybrown"], # цвета, количество = количеству пропорций
                           frame=True)            # отрисовка линий координат

ax.legend(wedges, ["a", "b"],
          title="Proportions",
          loc="lower right",
          )

plt.tight_layout()
plt.show()

получите:

введите сюда описание изображения