pyecharts的浅浅学习

pyecharts的浅浅学习

好吧,其实不太难,主要是参数太多了

模板太多了,不过那样子可以直接拿模板

废话少说直接上代码,解释都在注释里面了,没时间扣出来了,每个图都是实操过的,而且都明白原理和代码的含义
and有两种办法创建图例:链式和普通,链式比较简洁

geo式

from pyecharts.globals import GeoType#!!!!!
city = '杭州'
g = Geo()
g.add_schema(maptype=city)# 先要有一大的框架

g.add_coordinate('杭州师范大学仓前校区',120.0109472358, 30.2910373720)#注意这里要求经度在前维度在后
g.add_coordinate('萧山城厢街道',120.2740081170, 30.1605364542)
# 先要定点,不然,系统不知道你这个地方在哪里
data_pair = [('杭州师范大学仓前校区', 100),('萧山城厢街道', 500),("杭州",50)]
                    #                                       代表整个杭州,所以就会有酱紫的东西
g.add('', data_pair,type_=GeoType.EFFECT_SCATTER, symbol_size=20)
        #                   变成了涟漪状的!!!!
#  is_piecewise 是否自定义分段, 变为true 才能生效
g.set_global_opts(
        visualmap_opts=opts.VisualMapOpts(is_piecewise=True,max_=800),#注意默认max_
        title_opts=opts.TitleOpts(title="{}-店铺分布".format(city)),
    )

g.render('杭州.html')

输出
在这里插入图片描述
瑞士的地图

from pyecharts.charts import Geo
import pyecharts.options  as opts
geo = (
    Geo()
    .add_schema(maptype="瑞士")
    .set_global_opts(title_opts=opts.TitleOpts(title="瑞士"))
    .render("瑞士.html")
)

输出
在这里插入图片描述

地图式

from pyecharts.faker import Faker
from pyecharts import options as opts  # 导入模块
from pyecharts.charts import Map  # 导入模块
# 就三参数重要
# .add(标签,数据,地图)
# 数据可以一口气加入多个
# 也可以加入多次
# 但是记住他要对应x,y
customMap = (
    Map()
        .add("商家A",  # 标签
             [list(z) for z in zip(Faker.provinces, Faker.days_values)],  # 数据项
             # 数据and在地图上你是要写什么
             "china"  # 选择什么地图
             )
        .set_series_opts(
            label_opts=opts.LabelOpts(  # 设置标签配置项
            is_show=False  # 设置不显示Label,就是地图上面的种种东西,比如说省份
        )
    )
        # 有很多的选项,ok慢慢来
        .set_global_opts(  # 设置全局项
        title_opts=opts.TitleOpts(  # 设置标题配置项
            title="中国地图",  # 设置标题名称
            pos_left="center"  # 设置标题居中!!!!
        ),
        legend_opts=opts.LegendOpts(  # 设置图例配置项
            pos_right="right",  # 设置为水平居右
            pos_bottom="bottom"  # 设置为垂直居下
        ),
        visualmap_opts=opts.VisualMapOpts(
        # 视觉映射所以就是视觉上的东西,所以就是那种图示什么的
            # colorful
            is_piecewise=True,  # 设置为分段
            pieces=[  # 自定义分段名称和颜色
                {"value": "1", "label": "A", "color": "red"},
                {"value": "2", "label": "B", "color": "orange"},
                {"value": "3", "label": "C", "color": "yellow"},
                {"value": "4", "label": "D", "color": "green"},
                {"value": "5", "label": "E", "color": "blue"},
                {"value": "6", "label": "F", "color": "cyan"},
                {"value": "7", "label": "G", "color": "purple"}
            ]
        )

    )
)
customMap.render("地图式.html")

输出
在这里插入图片描述

饼状图

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

c = (
    Pie()
    .add("", [list(z) for z in zip(Faker.choose(), Faker.values())])
    # 只要输入数值就可以了,因为系统会制动分析百分比
    .set_global_opts(title_opts=opts.TitleOpts(title="Pie-基本示例"))
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
    # 每个数据的label的表现形式化
    .render("饼状图.html")
)

输出
在这里插入图片描述

词云图

import pyecharts.options as opts
from pyecharts.charts import WordCloud

data = [
   。。。。。。。。。。。。省略掉了
]
原理
系统自动根据里面的占比进行排列。。。
very easy
(
    WordCloud()
    .add(series_name="热点分析", data_pair=data, word_size_range=[6, 66])
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="热点分析", title_textstyle_opts=opts.TextStyleOpts(font_size=23)
        ),
        tooltip_opts=opts.TooltipOpts(is_show=True),
    )
    .render("词云图.html")
)

输出
在这里插入图片描述

热力图

import random

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

value = [[i, j, random.randint(0, 50)] for i in range(24) for j in range(7)]
# 建立网格图
c = (
    HeatMap()
    .add_xaxis(Faker.clock)# x轴的刻度是时间
    .add_yaxis("series0", Faker.week, value)
    #          名字      y轴的刻度是星期  填入数据
    # 都是y轴进行数据的录入呀!!!因为x轴已经固定下来了,你只要数据的数量合适,你就可以填进去了
    .set_global_opts(
        title_opts=opts.TitleOpts(title="HeatMap-基本示例"),
        visualmap_opts=opts.VisualMapOpts(),
    )
    .render("热力图.html")
)

输出
在这里插入图片描述

散点图

from pyecharts.charts import Scatter
from pyecharts.faker import Faker
import pyecharts.options as opts
c = (
    Scatter()
        .add_xaxis(Faker.choose())
        .add_yaxis("商家A", Faker.values())# faker7个数据
        .add_yaxis("商家B", Faker.values())
        .set_global_opts(
        title_opts=opts.TitleOpts(title="Scatter-VisualMap(Size)"),
        visualmap_opts=opts.VisualMapOpts(type_="size", max_=150, min_=20),
        # 图例。。。
    )
        .render("散点图.html")

)

输出
在这里插入图片描述

动态散点图

# 改进了一下,这次要x,y来搞那个坐标
from pyecharts import options as opts
from pyecharts.charts import EffectScatter
from pyecharts.faker import Faker
from pyecharts.globals import SymbolType

c = (
    EffectScatter()
    .add_xaxis(Faker.choose())
    .add_yaxis("", Faker.values(), symbol=SymbolType.ARROW)
    # 用y来表示那个图例                     箭头
    .set_global_opts(title_opts=opts.TitleOpts(title="EffectScatter-不同Symbol"))
    .set_global_opts(
        xaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
        yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)),
    )# 显示网格线!!!
    .render("动态散点图.html")
)

输出
在这里插入图片描述

树状图!!!!

from pyecharts import options as opts
from pyecharts.charts import Tree

# 还是像那个  旭日图一样  一个个进行层叠
# 比较耗时间而已
data = [
    {
        "children": [
            {"name": "中山"},
            {
                "children": [{"children": [{"name": "深圳技术大学,这样好吗。。。"}], "name": "深圳大学"}, {"name": "南方科技大学"}],
                "name": "深圳",
            },
            {
                "children": [
                    {"children": [{"name": "广州大学"}, {"name": "中山大学"}], "name": "某区"},
                    {"name": "白云区"},
                ],
                "name": "广州",
            },
        ],
        "name": "广东",
    }
]
c = (
    Tree()
    .add("", data)
    .set_global_opts(title_opts=opts.TitleOpts(title="Tree-基本示例"))
    .render("树状图.html")
)

输出
在这里插入图片描述

箱型图

from pyecharts import options as opts
from pyecharts.charts import Boxplot

v1 = [
    [850, 740, 900, 1070, 930, 850, 950, 980, 980, 880, 1000, 980],
    [960, 940, 960, 940, 880, 800, 850, 880, 900, 840, 830, 790],
]
v2 = [
    [890, 810, 810, 820, 800, 770, 760, 740, 750, 760, 910, 920],
    [890, 840, 780, 810, 760, 810, 790, 810, 820, 850, 870, 870],
]
c = Boxplot()
c.add_xaxis(["expr1", "expr2"])# 两列数据
c.add_yaxis("A", c.prepare_data(v1))
# 数据比较集中地时候就会变成一个箱子!!!!!
c.add_yaxis("B", c.prepare_data(v2))
c.set_global_opts(title_opts=opts.TitleOpts(title="BoxPlot-基本示例"))
c.render("箱型图.html")

输出
在这里插入图片描述

旭日图,也不太难,就是费眼睛和时间

from pyecharts.charts import Sunburst
from pyecharts import options as opts

# 他的孩子,一类继承一类
# 就是一个接着一个,easy
data = [
    opts.SunburstItem(
        name="Grandpa",
        children=[
            opts.SunburstItem(
                name="Uncle Leo",
                value=15,

                children=[
                    opts.SunburstItem(name="Cousin Jack", value=2),
                    opts.SunburstItem(
                        name="Cousin Mary",
                        value=5,
                        children=[opts.SunburstItem(name="Jackson", value=2)],
                    ),
                    opts.SunburstItem(name="Cousin Ben", value=4),
                ],
            ),
            opts.SunburstItem(
                name="Father",
                value=10,
                children=[
                    opts.SunburstItem(name="Me", value=5),
                    opts.SunburstItem(name="Brother Peter", value=1),
                ],
            ),
        ],
    ),
    opts.SunburstItem(
        name="Nancy",
        children=[
            opts.SunburstItem(
                name="Uncle Nike",
                children=[
                    opts.SunburstItem(name="Cousin Betty", value=1),
                    opts.SunburstItem(name="Cousin Jenny", value=2),
                ],
            )
        ],
    ),
]

sunburst = (
    Sunburst(init_opts=opts.InitOpts(width="1000px", height="600px"))
    .add(series_name="", data_pair=data, radius=[0, "90%"])
    .set_global_opts(title_opts=opts.TitleOpts(title="Sunburst-基本示例"))
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}"))
    .render("旭日图.html")
)

输出
在这里插入图片描述

柱状图

2个y的

from pyecharts import options as opts

from pyecharts.charts import Bar, Page
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
from pyecharts import options as pots

bar = Bar()
bar.add_xaxis(["a",'b','c','d'])
bar.add_yaxis('一号选手',[1,2,3,4])
bar.add_yaxis('二号选手',[5,6,7,8])
bar.set_global_opts(title_opts={"text": "同学们的生活开支"})
# 设置全局配置
# 加上了标题
bar.render('柱状图.html')

输出
在这里插入图片描述

缩放的柱状图,可以拖动的

c = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
    .add_xaxis(Faker.days_attrs)
    #https://blog.csdn.net/weixin_49432344/article/details/123872327
    # faker的详解如上,faker就是将随机来几个数据
    .add_yaxis("商家1", Faker.days_values, color=Faker.rand_color())
    .set_global_opts(
        title_opts=opts.TitleOpts(title="缩放的柱状图"),
        datazoom_opts=opts.DataZoomOpts(orient="horizontal"),
        # 提供区域缩放的功能,将全图缩小,那样子你就可以进行拖动了
# 设置水平('horizontal')或者竖直('vertical')
    )
    .render("nmd.html")
)

输出
在这里插入图片描述

3d的柱状图

import random

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


data = [(i, j, random.randint(0, 12)) for i in range(6) for j in range(24)]
# 因为先要创建一个网格出来!!!所以x,y是固定的,而且要全部都有!!
# 因为z是可以变动的,上下
c = (
    Bar3D()
    .add(
        "",
        [[d[1], d[0], d[2]] for d in data],
        # x,y,z
        xaxis3d_opts=opts.Axis3DOpts(Faker.clock, type_="category"),
        # x轴的刻度是    时间
        yaxis3d_opts=opts.Axis3DOpts(Faker.week_en, type_="category"),
        # y轴的刻度是 星期
        zaxis3d_opts=opts.Axis3DOpts(type_="value"),
    )
    .set_global_opts(
        visualmap_opts=opts.VisualMapOpts(max_=20),
        title_opts=opts.TitleOpts(title="Bar3D-基本示例"),
    )
    .render("3d柱状图.html")
)

输出
在这里插入图片描述
赶ddl真好玩,xs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值