Короткий ответ
Для сравнения величин по категориям лучше всего подходит столбчатая диаграмма; круговая диаграмма с большим числом секторов плохо читается, потому что человеку сложно точно сравнивать углы и площади.
Как это работает подробнее
Столбцы кодируют значение длиной от общей базовой линии, и такие длины легко сравнивать визуально; круговая диаграмма кодирует долю через угол/площадь сектора, что человек воспринимает менее точно, особенно при похожих значениях.
Пример кода
example.py
import pandas as pd
df = pd.DataFrame({
"category": ["Electronics", "Clothing", "Home", "Sports", "Books"],
"sales": [1200, 950, 700, 430, 300],
})
df = df.sort_values("sales", ascending=False)
ax = df.plot.bar(x="category", y="sales", legend=False)
ax.set_ylabel("Sales, $")Что использовать на практике
- Рекомендация. Сортируйте столбцы по убыванию значения для читаемости, объединяйте мелкие категории в «Прочее», если их много, используйте горизontal bar при длинных подписях категорий.
Подводные камни
- Риск. Использование pie-диаграммы для 8+ категорий, 3D-эффекты у столбцов и секторов, отсутствие сортировки столбцов, начало оси Y не с нуля для столбчатой диаграммы.