new to Python and stuck with a pie chart. 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'
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'
I could do this very easily with SQL but with Python...I am not sure.
Full disclosure, I'm a member of the ZingChart team.
You can use ZingChart for free to accomplish this. 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>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With