新冠肺炎新增數據南丁格爾玫瑰圖

南丁格爾玫瑰圖(新冠肺炎新增數據可視化)

import pandas as pd
from pyecharts.charts import Pie
from pyecharts import options as opts

數據

#省份
provinces = ['北京','上海','黑龍江','吉林','遼寧','內蒙古','新疆','西藏','青海','四川','雲南','陝西','重慶',
             '貴州','廣西','海南','澳門','湖南','江西','福建','安徽','浙江','江蘇','寧夏','山西','河北','天津']
#0新增持續天數
num = [1,1,1,17,9,22,23,42,35,7,20,21,16,24,16,21,37,12,13,14,13,7,22,8,16,13,13]
# 顏色序列
color_series = ['#FAE927','#E9E416','#C9DA36','#9ECB3C','#6DBC49',
                '#37B44E','#3DBA78','#14ADCF','#209AC9','#1E91CA',
                '#2C6BA0','#2B55A1','#2D3D8E','#44388E','#6A368B'
                '#7D3990','#A63F98','#C31C88','#D52178','#D5225B',
                '#D02C2A','#D44C2D','#F57A34','#FA8F2F','#D99D21',
                '#CF7B25','#CF7B25','#CF7B25']

數據排序

# 創建數據框
df = pd.DataFrame({'provinces': provinces, 'num': num})
# 降序排序
df.sort_values(by='num', ascending=False, inplace=True)
# 提取數據
v = df['provinces'].values.tolist() #省份
d = df['num'].values.tolist() #無新增天數

畫圖

# 實例化Pie類
pie1 = Pie(init_opts=opts.InitOpts(width='1350px', height='750px'))
# 設置顏色
pie1.set_colors(color_series)
# 添加數據,設置餅圖的半徑,是否展示成南丁格爾圖
pie1.add("", [list(z) for z in zip(v, d)]
         #畫圖的數據
#          ,color=color_series
        ,radius=["30%", "135%"]
         # 餅圖的半徑,數組的第一項是內半徑,第二項是外半徑
        # 默認設置成百分比,相對於容器高寬中較小的一項的一半
         
      ,center=["50%", "65%"]
     # 餅圖的中心(圓心)座標,數組的第一項是橫座標,第二項是縱座標
    # 默認設置成百分比,設置成百分比時第一項是相對於容器寬度,第二項是相對於容器高度
       , rosetype="area"  
         # rosetype ='area':所有扇區圓心角相同,僅通過半徑展現數據大小,
         #如果設置rosetype ='radius':表示扇區圓心角展現數據的百分比,半徑展現數據的大小
        )
# 設置全局配置項
pie1.set_global_opts(title_opts=opts.TitleOpts(title='玫瑰圖示例'),
                     legend_opts=opts.LegendOpts(is_show=False),
                     toolbox_opts=opts.ToolboxOpts())
# 設置系列配置項
pie1.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position="inside", font_size=12,
                                               formatter="{b}:{c}天", font_style="italic",
                                               font_weight="bold", font_family="Microsoft YaHei"
                                               ),
                     )
# 生成html文檔
pie1.render('南丁格爾玫瑰圖.html')

玫瑰圖

'E:\\Files\\Python_Learn\\案例練習\\南丁格爾玫瑰圖.html'

pyecharts 玫瑰圖示例

https://github.com/pyecharts/pyecharts-gallery/blob/master/Pie/pie_rosetype.py

from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker

v = Faker.choose()
c = (
    Pie()
    .add(
        "",
        [list(z) for z in zip(v, Faker.values())],
        radius=["30%", "75%"],
        center=["25%", "50%"],
        rosetype="radius",
        label_opts=opts.LabelOpts(is_show=False),
    )
    .add(
        "",
        [list(z) for z in zip(v, Faker.values())],
        radius=["30%", "75%"],
        center=["75%", "50%"],
        rosetype="area",
    )
    .set_global_opts(title_opts=opts.TitleOpts(title="Pie-玫瑰圖示例"))
    .render("pie_rosetype.html")
)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章