南丁格尔玫瑰图

南丁格尔玫瑰首要经过制作饼状图进行完成,其间一个要害点是设置rosetype参数为area,详细完成步骤如下:

import pandas as pd
from pyecharts.charts import Pie
from pyecharts import options as opts
# 导入Excel文件
df = pd.read_excel('data3.xls')
x_data = df['区域']
y_data = df['累计']
# 将数据转换为列表加元组的格局([(key1, value1), (key2, value2)])
data = [list(z) for z in zip(x_data, y_data)]
# 数据排序
data.sort(key=lambda x: x[1])
# 创立饼形图并设置画布大小
pie = Pie(init_opts=opts.InitOpts(width='800px', height='400px'))
# 为饼形图添加数据
pie.add(
    series_name="区域",  # 序列称号
    data_pair=data,  # 数据
    radius=["8%", "160%"],  # 内外半径
    center=["60%", "80%"],  # 方位
    rosetype='area',  # 玫瑰图
    color='auto'  # 色彩主动突变
)
pie.set_global_opts(
    # 不显示图例
    legend_opts=opts.LegendOpts(is_show=False),
    # 视觉映射
    visualmap_opts=opts.VisualMapOpts(is_show=False,
                                      min_=100,  # 色彩条最小值
                                      max_=450000,  # 色彩条最大值
                                      )
)
pie.set_series_opts(
    # 序列标签
    label_opts=opts.LabelOpts(position='inside',  # 标签方位
                              rotate=45,
                              font_size=8)  # 字体大小
    # formatter="{b}: {c}") # 标签格局
)
# 渲染图表到HTML文件,存放在程序地点目录下
pie.render("mypie1.html")

数据剖析归纳实战(三)

双y轴可视化数据剖析表图的完成(柱形图 折线图)

双y轴望文生义就是两个y轴,下面完成柱状图 折线图双y轴图表的制作,其间柱形图y轴表示月销量,折线图y轴表示3个渠道的月平均销量,效果如下图所示。 完成双y轴可视化剖析图表的两个要害字:一是运用Bar模块的extend_axis()办法扩展y轴;二是对add_yaxis()办法的yaxis_index参数进行设置,该参数用于指定y轴的索引值,从0开始。双y轴索引值别离0和1。

import pyecharts.options as opts
from pyecharts.charts import Bar, Line
import pandas as pd
import numpy
# 导入Excel文件
df = pd.read_excel('books2.xlsx')
x_data = list(df['月份'])
y1 = list(df['京东'])
y2 = list(df['天猫'])
y3 = list(df['自营'])
# 色彩列表
colors = ["#5793f3", "#FFD700", "#675bba"]
# 求平均值并保留整数位
y_average = list(((df['京东']   df['天猫']   df['自营']) / 3).apply(numpy.round))
# 制作柱形图
legend_list = ["京东", "天猫", "自营"]
bar = (
    Bar(init_opts=opts.InitOpts(width="1000px", height="500px"))
    .add_xaxis(xaxis_data=x_data)
    .add_yaxis(
        series_name="京东",
        yaxis_data=y1,
        color=colors[0],
        yaxis_index=0,
    )
    .add_yaxis(
        series_name="天猫", yaxis_data=y2, color=colors[1]
    )
    .add_yaxis(
        series_name="自营", yaxis_data=y3, color=colors[2]
    )
    .extend_axis(yaxis=opts.AxisOpts())
)
# 制作折线图
line = Line()
line.add_xaxis(xaxis_data=x_data)
line.add_yaxis(
    series_name="平均销量",
    y_axis=y_average,  # y轴平均值
    color='red',
    yaxis_index=1,
)
# 渲染图表到HTML文件,存放在程序地点目录下
bar.overlap(line).render("barline.html")

数据剖析归纳实战(三)

饼状图与环形图组合图表的完成

饼状图与环形图组合,并且饼形图展现 “北上广”三大首要城市的销量状况,环形图展现其他省份的销量状况。 制作饼形图与环形图组合图表的一个要害点是创立两个饼形图,并设置不同的半径参数,详细完成如下。

import pyecharts.options as opts
from pyecharts.charts import Pie
# 饼形图数据
x1 = ["北京", "上海", "广州"]
y1 = [1168, 890, 578]
data1 = [list(z) for z in zip(x1, y1)]
# 环形图数据
x2 = ["北京", "上海", "河南省", "广州", "湖南省", "四川省", "湖北省", "河北省", "江苏省", "浙江省"]
y2 = [1168, 890, 234, 578, 345, 225, 188, 101, 999, 1300]
data2 = [list(z) for z in zip(x2, y2)]
# 饼形图与环形图组合
(
    Pie(init_opts=opts.InitOpts(width="1000px", height="600px"))
    # 饼形图
    .add(
        series_name="出售区域",
        data_pair=data1,
        radius=[0, "30%"],
        label_opts=opts.LabelOpts(position="inner"),  # 饼形图标签
    )
    # 环形图
    .add(
        series_name="出售区域",
        radius=["40%", "55%"],
        data_pair=data2,
        # 环形图标签
        label_opts=opts.LabelOpts(
            position="outside",  # 标签方位
            # 标签格局化
            formatter="{a|{a}}{bg|}n{hr|}n {b|{b}: }{c}  {per|{d}%}  ",
            background_color="#FAFAD2",  # 背景色
            border_color="#FFA500",  # 边框色彩
            border_width=1,  # 边框宽度
            border_radius=4,  # 边框半径
            # 利用富文本款式,定义标签效果
            rich={
                "a": {"color": "black", "lineHeight": 22, "align": "center"},
                "bg": {
                    "backgroundColor": "#FFA500",
                    "width": "100%",
                    "align": "right",
                    "height": 22,
                    "borderRadius": [4, 4, 0, 0],
                },
                "hr": {
                    "borderColor": "#aaa",
                    "width": "100%",
                    "borderWidth": 0.5,
                    "height": 0,
                },
                "b": {"fontSize": 14, "lineHeight": 33},
                "per": {
                    "color": "#eee",
                    "backgroundColor": "#334455",
                    "padding": [2, 4],
                    "borderRadius": 2,
                },
            },
        ),
    )
    .set_global_opts(legend_opts=opts.LegendOpts(pos_left="left", orient="vertical"))
    .set_series_opts(
        tooltip_opts=opts.TooltipOpts(
            trigger="item", formatter="{a} <br/>{b}: {c} ({d}%)"
        )
    )
    .render("mypies.html")
)

数据剖析归纳实战(三)