简体   繁体   English

如何创建饼图?

[英]How to create pie chart?

new to Python and stuck with a pie chart. Python 新手并坚持使用饼图。 Apologies for the complexity but I am at a lost as how to proceed .. I have this dataset in the form of a dictionary (part of it)为复杂性道歉,但我不知道如何进行..我有字典形式的数据集(其中的一部分)

{'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' .......

I need to generate a pie chart that shows the latest year - 2013, and shows the top 8 causes of death code 'Cause' from field 'Deaths1'我需要生成一个饼图,显示最近的一年 - 2013 年,并显示字段“Deaths1”中的前 8 位死因代码“Cause”

So to sum it up:所以总结一下:

So for example the data should be filtered as因此,例如数据应过滤为

Year    CAUSE    Top8
2013     A000    5000
2013     A411    400
2013     A50     200
.....

and then shown as a pie chart with anything after the top 8 treated as 'other'然后显示为饼图,前 8 名之后的任何内容都被视为“其他”

I could do this very easily with SQL but with Python...I am not sure.我可以用 SQL 很容易地做到这一点,但用 Python...我不确定。

Full disclosure, I'm a member of the ZingChart team.完全公开,我是 ZingChart 团队的成员。

You can use ZingChart for free to accomplish this.您可以免费使用ZingChart来完成此操作。 I'm not sure if you were looking for the answer to include how to parse the dictionary or just the data visualization portion.我不确定您是否正在寻找包括如何解析字典或只是数据可视化部分的答案。 With some simple attributes we can display the data in a legible manner.通过一些简单的属性,我们可以以清晰的方式显示数据。 From there we can hover nodes to get more information about the node and we can click on the legend to remove a node from the graph.从那里我们可以悬停节点以获取有关该节点的更多信息,我们可以单击图例从图表中删除节点。 This will re calculate the percentage taken up be each node amongst remaining, non hidden nodes.这将重新计算每个节点在剩余的非隐藏节点中所占的百分比。

 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>

You can use Matplotlib for creating Pie charts in Python您可以使用Matplotlib在 Python 中创建饼图

Example Pie Chart:-示例饼图:-

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

You can try Seaborn's Pie Plot.你可以试试Seaborn's饼图。 Let's see an example of how pie plot was used to visualize the famous Iris flower data.让我们看一个如何使用饼图来可视化著名的鸢尾花数据的示例。

All you have to do is to import the library and play around with it:您所要做的就是导入库并使用它:

import seaborn as sns

For starters, here's the dataset's top 5 rows retrieved by the head() method:首先,这是由head()方法检索到的数据集的前 5 行: 在此处输入图片说明

The dataset has 3 classes:数据集有 3 个类: 在此处输入图片说明

Now, I wanted to plot the classes as pie chart现在,我想将类绘制为饼图

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

And voila!瞧!

在此处输入图片说明

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM