Как создать круговую диаграмму?

#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() данных, полученных методом:
введите описание изображения здесь

Набор данных имеет 3 класса: введите описание изображения здесь

Теперь я хотел отобразить классы в виде круговой диаграммы

 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()
  

И вуаля!

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