Маркировка круговой диаграммы в Python ⇐ Python
Маркировка круговой диаграммы в Python
Я хочу построить круговую диаграмму, но некоторые клинья на графике имеют очень низкий процент, поэтому я попытался пометить их за пределами графика стрелкой вне графика, но я ошибся и не смог правильно их пометить, это код def create_pie_plot(sample_id, данные, имя_столбца, порог = 0,05): # Фильтровать данные для выбранного образца и численности, превышающей пороговое значение filtered_data = data[(data['Sample'] == sample_id) & (data[column_name] > порог)]
# Сброс индекса во избежание потенциальной ошибки KeyError filtered_data.reset_index(drop=True, inplace=True) # Увеличить размер фигуры рис, топор = plt.subplots(figsize=(8, 8)) # Создайте круговую диаграмму с разнесением клинья, тексты, автотексты = ax.pie( x=filtered_data[имя_столбца], autopct='%1.1f%%', процентное расстояние=0,5, textprops = dict(color="w") ) # Добавьте метки со стрелками для процентов < 1% kw = dict(arrowprops=dict(arrowstyle="-"), bbox=dict(boxstyle="round,pad=0.3", Edgecolor="none", facecolor="none")) для i, p в перечислении (клинья): процент = filtered_data[имя_столбца].iloc если процент < 1: анг = (p.theta2 - p.theta1)/2. + п.тета1 y = np.sin(np.deg2rad(ang)) x = np.cos(np.deg2rad(ang)) горизонтальное выравнивание = {-1: «вправо», 0: «по центру», 1: «влево»}[int(np.sign(x))] Connectionstyle = f"угол,уголA=0,уголB={анг}" kw["arrowprops"].update({"connectionstyle": Connectionstyle}) ax.annotate(f"{percentage:.1f}%", xy=(x, y), xycoords='data', xytext=(1.35*np.sign(x), 1.4*y), textcoords = 'данные', горизонтальное выравнивание = горизонтальное выравнивание, **kw) # Ручная настройка параметров макета plt.subplots_adjust(left=0.1, right=0.6) # Настройка левого и правого полей # Обновить макет ax.set_title(f"Круговая диаграмма для образца: {sample_id}") #Показать сюжет plt.show() Этот сюжет я получаю
как можно отрегулировать эти стрелки, чтобы можно было пометить значение за пределами клиньев, у которого процент ниже 1 процента
Я хочу построить круговую диаграмму, но некоторые клинья на графике имеют очень низкий процент, поэтому я попытался пометить их за пределами графика стрелкой вне графика, но я ошибся и не смог правильно их пометить, это код def create_pie_plot(sample_id, данные, имя_столбца, порог = 0,05): # Фильтровать данные для выбранного образца и численности, превышающей пороговое значение filtered_data = data[(data['Sample'] == sample_id) & (data[column_name] > порог)]
# Сброс индекса во избежание потенциальной ошибки KeyError filtered_data.reset_index(drop=True, inplace=True) # Увеличить размер фигуры рис, топор = plt.subplots(figsize=(8, 8)) # Создайте круговую диаграмму с разнесением клинья, тексты, автотексты = ax.pie( x=filtered_data[имя_столбца], autopct='%1.1f%%', процентное расстояние=0,5, textprops = dict(color="w") ) # Добавьте метки со стрелками для процентов < 1% kw = dict(arrowprops=dict(arrowstyle="-"), bbox=dict(boxstyle="round,pad=0.3", Edgecolor="none", facecolor="none")) для i, p в перечислении (клинья): процент = filtered_data[имя_столбца].iloc если процент < 1: анг = (p.theta2 - p.theta1)/2. + п.тета1 y = np.sin(np.deg2rad(ang)) x = np.cos(np.deg2rad(ang)) горизонтальное выравнивание = {-1: «вправо», 0: «по центру», 1: «влево»}[int(np.sign(x))] Connectionstyle = f"угол,уголA=0,уголB={анг}" kw["arrowprops"].update({"connectionstyle": Connectionstyle}) ax.annotate(f"{percentage:.1f}%", xy=(x, y), xycoords='data', xytext=(1.35*np.sign(x), 1.4*y), textcoords = 'данные', горизонтальное выравнивание = горизонтальное выравнивание, **kw) # Ручная настройка параметров макета plt.subplots_adjust(left=0.1, right=0.6) # Настройка левого и правого полей # Обновить макет ax.set_title(f"Круговая диаграмма для образца: {sample_id}") #Показать сюжет plt.show() Этот сюжет я получаю
как можно отрегулировать эти стрелки, чтобы можно было пометить значение за пределами клиньев, у которого процент ниже 1 процента
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение