#python #python-3.x #dictionary #charts #pie-chart
#питон #python-3.x #словарь #Диаграммы #круговая диаграмма #python
Вопрос:
новичок в Python и застрял с круговой диаграммой. Приношу извинения за сложность, но я в растерянности, как поступить дальше.. У меня есть этот набор данных в виде словаря (его части)
{'Deaths5': 94, 'Deaths10': 379, 'Deaths12': 388, 'Deaths8': 138, 'Deaths25': None,
'IM_Deaths2': None, 'Deaths14': 511, 'Deaths1': 20535, 'Deaths23': 2643, 'Deaths6': 62,
'IM_Deaths1': 4349, 'Deaths17': 1036, 'Deaths18': 1234, 'Sex': '2', 'Deaths11': 358, 'Deaths22': 1708,
'Deaths21': 1922, 'IM_Frmat': '08', 'SubDiv': '', 'Deaths15': 600, 'Deaths4': 157, 'Admin1': '',
'IM_Deaths3': None, 'Deaths19': 1125, 'Deaths24': None, 'Frmat': '01', 'Deaths20': 1602, 'Deaths3': 350,
'Year': '1964', 'Deaths7': 149, 'Deaths9': 311, 'Deaths26': 33, 'Country': '2150',
'Deaths16': 932, 'Deaths13': 454, 'Deaths2': 4349, 'IM_Deaths4': None, 'Cause': 'A000', 'List': '07A' .......
Мне нужно сгенерировать круговую диаграмму, которая показывает последний год — 2013
и показывает 8 основных причин смерти с кодом «Причина» из поля «Deaths1»
Итак, подведем итог:
Так, например, данные должны быть отфильтрованы следующим образом
Year CAUSE Top8
2013 A000 5000
2013 A411 400
2013 A50 200
.....
а затем отображается в виде круговой диаграммы, где все, что находится после верхних 8, рассматривается как «другое»
Я мог бы сделать это очень легко с помощью SQL, но с помощью Python…Я не уверен.
Комментарии:
1. Почему высокие диаграммы являются тегом? Другой язык программирования, да?
2. извините, должно быть указано список / словарь, а не база данных
Ответ №1:
Полное раскрытие, я являюсь членом команды ZingChart.
Для этого вы можете бесплатно использовать ZingChart. Я не уверен, искали ли вы ответ, включающий в себя, как анализировать словарь или только часть визуализации данных. С помощью некоторых простых атрибутов мы можем отображать данные в удобочитаемом виде. Оттуда мы можем наводить курсор на узлы, чтобы получить больше информации об узле, и мы можем щелкнуть по легенде, чтобы удалить узел из графика. Это приведет к повторному вычислению процента, занимаемого каждым узлом среди оставшихся, не скрытых узлов.
var myConfig = {
type: 'pie',
title:{
text: '2013 Deaths',
adjustlayout: true
},
legend:{
toggleAction: 'remove'
},
plot:{
valueBox:{ // hard label
placement:'out'
}
},
tooltip:{ // for node hover
text:'%t: Had %v deaths in 2013'
},
series: [
{
values: [5000],
text: 'A000'
},
{
values: [400],
text: 'A411'
},
{
values: [200],
text: 'A00'
},
{
values: [900],
text: 'Other'
}
]
};
zingchart.render({
id: 'myChart',
data: myConfig,
height: '100%',
width: '100%'
});
html, body {
height:100%;
width:100%;
margin:0;
padding:0;
}
#myChart {
height:100%;
width:100%;
min-height:150px;
}
<!DOCTYPE html>
<html>
<head>
<!--Assets will be injected here on compile. Use the assets button above-->
<script src= "https://cdn.zingchart.com/zingchart.min.js"></script>
<script> zingchart.MODULESDIR = "https://cdn.zingchart.com/modules/";
ZC.LICENSE = ["569d52cefae586f634c54f86dc99e6a9","ee6b7db5b51705a13dc2339db3edaf6d"];</script>
<!--Inject End-->
</head>
<body>
<div id="myChart"></div>
</body>
</html>
Комментарии:
1. Привет, извините, я не опубликовал решение в python. Вы можете отклонить ответ. Единственное решение на python, которое у меня есть, — это наш онлайн-репозиторий demos. github.com/zingchart-demos/python-django
Ответ №2:
Вы можете использовать Matplotlib для создания круговых диаграмм в Python
Пример круговой диаграммы:-
import matplotlib.pyplot as plt
labels = 'A', 'B', 'C', 'D'
sizes = [40, 20, 20, 20]
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']
explode = (0, 0.1, 0, 0)
plt.pie(sizes, explode=explode, labels=labels, colors=colors,
autopct='%1.1f%%', shadow=True, startangle=90)
plt.axis('equal')
plt.title('Year 2013')
plt.show()
Ответ №3:
Вы можете попробовать Seaborn's
круговую диаграмму. Давайте посмотрим пример того, как круговая диаграмма использовалась для визуализации знаменитых данных о цветке ириса.
Все, что вам нужно сделать, это импортировать библиотеку и поиграть с ней:
import seaborn as sns
Для начала, вот 5 лучших строк набора head()
данных, полученных методом:
Теперь я хотел отобразить классы в виде круговой диаграммы
dataset['Class'].value_counts().plot.pie(explode=[0.05, 0.05,0.05], autopct='%1.1f%%', shadow=True, figsize=(8,8))
plt.title('Pie Chart for Class')
plt.show()
И вуаля!