pyecharts常见柱状图、圆饼图、散点图

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DataCastle/article/details/84103626

今天带大家认识一下pyecharts中常用的三种视图的画法。更多的是认识一下基本的配置项,避免走太多的坑。当然都是些常用的配置项,如果有奇怪的需求,大家自行查找。。

当然前提是必须先安装了pyecharts库  -_ -...

引用数据

本次作图的数据来自dataset中的“tips”数据集,引用的方法很多种,大家可自行参考。

import seaborn as sns 
import pandas as pd
import numpy as np
tips = sns.load_dataset('tips')

 导入数据后,原始数据可能不太适合直接做图,所以进行相应的数据处理,处理过程如下所示:(处理方法可随意,这里也只是为了方便作图。。)

tips['size'].value_counts()
count = [4,156,38,37,5,4]
size = tips.groupby(['size'],as_index=False).sum()
size['tip'] = size['tip'].round(2)
size['count'] = count
size['average_tip'] = (size['tip']/size['count']).round(2)
size['average_bill'] = (size['total_bill']/size['count']).round(2)

 处理后的数据效果如下:

各列的意义就是列名称直接对应的意思,这里就不多说了(size指的是每一桌用餐的人数,count指该人数出现的次数)

柱状图

pyecharts作图时,要先导入一个类,通过这个类再去添加相应的参数,从而作出图像。代码如下:

from pyecharts import Bar #引入Bar柱状图这个类,后面的饼图,散点图也是一样的,后面不再讲解。

bar = Bar('用餐人数tips统计') #此处定义主标题和副标题。
bar.use_theme('dark') # 默认主题为白色,这里修改为黑色。
bar.add('总tips',size['size'],size['tip'],mark_point=['min','max'],is_stack=True,mark_line=["min", "max"])
bar.add('均tips',size['size'],size['average_tip'])
bar.add('均bill',size['size'],size['average_bill'])
bar.add('总桌数',size['size'],size['count'],
        xaxis_interval=0, xaxis_rotate=30, yaxis_rotate=30)
## 以上四句代码是作出四种类目柱状图,每一类要单独放在bar.add()方法中

bar # 显示图像,没有这句不会做出图像

mark_point:标出最大值最小值的地方。

mark_line:标出最大值最小值的虚线。

xaxis_interval:横轴坐标之间的间隔显示,默认为auto。

xaxis_rotate、yaxis_rotate:横、纵坐标值偏转的角度,当坐标值过于密集时,可采用擦方法。 

is_convert=True/False,作用为反转x,y轴,根据具体需要添加,此图中没有添加。

Note: 全局配置项要在最后一个 add() 上设置,否侧设置会被冲刷掉。所以,最好在最后一个bar.add()中加入配置项方法,以免在前面加入后并显示不出效果。

最终图像效果如下:

 圆饼图

饼图先带领大家认识一个入门级别的,先看代码:

from pyecharts import Pie #

pie = Pie("用餐人数tips统计")
pie.add("人数", size['size'],size['average_tip'],
        is_label_show=True, # 是否显示每一部分对应的标签
        radius=[40, 75], # 定义内圆和外圆环的半径
        rosetype="area",) # 定义玫瑰图的类型,可选有radius

pie

 这里作出的图形其实是玫瑰图,在饼图的基础上做了些变化,当然也可以做成圆环图,取决于两个参数设置:radius和rosetype

radius:用来定义内外圆半径的大小,只有这一条则会作出圆环图。

rosetyoe:用来定义玫瑰图(南丁格尔图)的方式,有'radius'和'area'两种模式,radius:扇区圆心角展现数据的百分比,半径展现数据的大小,area:所有扇区圆心角相同,仅通过半径展现数据大小。

legend_orient="vertical",legend_pos="left",legend_top="center"分别设置标签垂直、靠左显示以及中央显示,该参数也适用于改变其他图形的标签。

图像效果如下:(我没用到的参数大家可以自行尝试)

接下来来一个进阶版的

from pyecharts import Pie
import pyecharts
pie = Pie('各类消费者tips在总tips所占比例', title_pos='center')
style = pyecharts.Style()
pie_style = style.add(
    label_pos="center",
    is_label_show=True,
    )
pie.add(
    "", ["1人用餐", "其他"], [5.75, 731.58], center=[25, 30], **pie_style
)
pie.add(
    "", ["2人用餐", "其他"], [402.84, 731.58], center=[55, 30],  **pie_style
)
pie.add(
    "", ["3人用餐", "其他"], [128.94, 731.58], center=[85, 30],  **pie_style
)
pie.add(
    "", ["4人用餐", "其他"], [153.01, 731.58], center=[25, 80],  **pie_style
)
pie.add(
    "", ["5人用餐", "其他"], [20.14, 731.58], center=[55, 80], **pie_style
)
pie.add(
    "", ["6人用餐", "其他"], [20.90, 731.58], center=[85, 80], **pie_style,
    legend_pos="left",legend_orient="vertical",legend_top="center"
)
pie

 这里引用pyecharts中的Style()类,通过这个类设置了一些通用配置项,这样就不用在每个add方法中设置。主要是设置了每个圆环的大小以及标签的显示和位置。(当然,只有一样的设置才可以放到style中,否则会很奇怪)

参数大致相同,没什么好说的,直接看效果吧

散点图

散点图也可以称为气泡图,这里有个可视化工具很关键,先看代码:

from pyecharts import Scatter

scatter = Scatter("各类人群均tips散点图")
scatter.add("均tips", size['size'], size['average_tip'],
           is_visualmap=True, # 使用可视化调整工具
           visual_range=[1, 6], # 调整的范围
           visual_type="size", 
           visual_range_size=[20, 80] #散点可根据数值大小映射出不同的大小
           )
scatter

 is_visualmap:利用 Visualmap 组件,通过颜色映射数值

visual_type="size",visual_range_size=[20, 80] ,通过大小映射数值,使用大小映射数值,则会覆盖颜色映射数值。

注意:散点图默认的坐标轴都为数值轴,如果想实现横坐标为类目轴,可通过 xaxis_type 修改,xaxis_type="category"

效果如下:

蓝色工具是可上下调整的,根据范围显示对应的点。

猜你喜欢

转载自blog.csdn.net/DataCastle/article/details/84103626