Python----数据可视化(pyecharts二:绘图一:条形图,直方图,折线图,散点图,箱图,饼图,热力图)

发布于:2025-03-14 ⋅ 阅读:(10) ⋅ 点赞:(0)

1、条形图

from pyecharts.charts import Bar
from pyecharts.faker import Faker
from pyecharts import options as opts
# 绘制柱状图
bar = (
    Bar() # 创建柱状图
    .add_yaxis("商家A", Faker.values(),color=Faker.rand_color()) # 添加数据
    .add_yaxis("商家B", Faker.values(),color=Faker.rand_color())
    .add_xaxis(Faker.choose()) # 添加x轴数据
    .set_global_opts(title_opts=opts.TitleOpts(title="柱状图", subtitle="副标题")) # 设置标题
)
# 渲染图表
bar.render_notebook()

设置标记线 

# 设置标记线
bar = (
    Bar() # 创建柱状图
    .add_yaxis("商家A", Faker.values(),color=Faker.rand_color()) # 添加数据
    .add_yaxis("商家B", Faker.values(),color=Faker.rand_color())
    .add_xaxis(Faker.choose()) # 添加x轴数据
    .set_global_opts(title_opts=opts.TitleOpts(title="柱状图", subtitle="副标题")) # 设置标题
    .set_series_opts(markline_opts=opts.MarkLineOpts(
        data=[
            # opts.MarkLineItem(type_="average", name="平均值")
            opts.MarkLineItem(y=80,name='合格线')
              ]
    )) # 设置标记线
)
# 渲染图表
bar.render_notebook()

设置堆叠 

2、直方图 

from pyecharts.charts import Bar
from pyecharts.faker import Faker
from pyecharts import options as opts
# 绘制图表
bar = (
    Bar()
    .add_xaxis(Faker.choose())
    .add_yaxis("商家A", Faker.values(),gap='0%')
    .add_yaxis("商家B", Faker.values(),gap='0%')
    .set_global_opts(
        title_opts=opts.TitleOpts(title="直方图",title_textstyle_opts=opts.TextStyleOpts(color='white')), # 标题文字颜色
        legend_opts=opts.LegendOpts(textstyle_opts=opts.TextStyleOpts(color='white')), # 图例文字颜色
        )
)
bar.render_notebook()

3、折线图 

from pyecharts.charts import Line
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.globals import ThemeType
x_data = Faker.week
types = Faker.choose()
line = (
    Line(init_opts=opts.InitOpts(theme=ThemeType.DARK))
    .add_xaxis(x_data)
    .add_yaxis(types[0],Faker.values(),stack="总量")
    .add_yaxis(types[1],Faker.values(),stack="总量")
    .add_yaxis(types[2],Faker.values(),stack="总量")
    .add_yaxis(types[3],Faker.values(),stack="总量")
    .add_yaxis(types[4],Faker.values(),stack="总量")
    .add_yaxis(types[5],Faker.values(),stack="总量")
    .add_yaxis(types[6],Faker.values(),stack="总量")
)
line.render_notebook()

面积堆叠 

line = (
    Line(init_opts=opts.InitOpts(theme=ThemeType.DARK))  # 设置主题
    .add_xaxis(Faker.choose())
    .add_yaxis("商家A", Faker.values(),stack='总量')
    .add_yaxis("商家B", Faker.values(),stack='总量')
    .add_yaxis("商家C", Faker.values(),stack='总量')
    .add_yaxis("商家D", Faker.values(),stack='总量')
)
line.set_series_opts(
    areastyle_opts=opts.AreaStyleOpts(opacity=0.8),  # 增加面积图的显示
    label_opts=opts.LabelOpts(is_show=False),        # 不显示标签
)
line.set_global_opts(
    title_opts=opts.TitleOpts(title="Line-面积图堆叠"),  # 设置标题
    xaxis_opts=opts.AxisOpts(boundary_gap=False),    # 从x轴原点开始绘制
    tooltip_opts=opts.TooltipOpts(trigger="axis"),  # 设置鼠标悬停时的提示
)
# 渲染图表
line.render_notebook()

4、散点图 

from pyecharts.charts import Scatter
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.globals import ThemeType
sc = (
    Scatter() # 初始化散点图
    .add_xaxis(Faker.choose())  # x轴数据
    .add_yaxis('',Faker.values())  # y轴数据
    .set_global_opts(
        visualmap_opts=opts.VisualMapOpts(type_='size')
    )
)
# 渲染图表
sc.render_notebook()

5、箱图

from pyecharts.charts import Boxplot
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.globals import ThemeType
from random import randint
box =  Boxplot()
box = (
    box.add_xaxis(Faker.choose())
    .add_yaxis('商家A',box.prepare_data([
        [randint(0,100) for i in range(100)],
        [randint(10,100) for i in range(100)],
        [randint(20,100) for i in range(100)],
        [randint(30,100) for i in range(100)],
        [randint(40,100) for i in range(100)],
        [randint(60,100) for i in range(100)],
        [randint(80,100) for i in range(100)],
    ]))
    .add_yaxis('商家B',box.prepare_data([
        [randint(0,100) for i in range(100)],
        [randint(10,100) for i in range(100)],
        [randint(20,100) for i in range(100)],
        [randint(30,100) for i in range(100)],
        [randint(40,100) for i in range(100)],
        [randint(60,100) for i in range(100)],
        [randint(80,100) for i in range(100)],
    ]))
)
# 渲染图表
box.render_notebook()

6、饼图 

from pyecharts.charts import Pie
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.globals import ThemeType
from random import randint
pie = (
    Pie()
    .add('',data_pair=[i for i in zip(Faker.choose(),Faker.values())],
         label_opts=opts.LabelOpts(formatter='{b}:{c}')
         )
    .set_global_opts(
        legend_opts=opts.LegendOpts(textstyle_opts=opts.TextStyleOpts(color='white'))
    )
    .set_series_opts(
        label_opts=opts.LabelOpts(formatter='{b}:{d}')
    )
)
# 渲染图表
pie.render_notebook()

空心饼图 

pie = (
    Pie()
    .add('',data_pair=[i for i in zip(Faker.choose(),Faker.values())],
           radius=['50%','70%'] 
         )
    .set_global_opts(
        legend_opts=opts.LegendOpts(textstyle_opts=opts.TextStyleOpts(color='white'))
    )
    .set_series_opts(
        label_opts=opts.LabelOpts(formatter='{b}:{d}')
    )
)
# 渲染图表
pie.render_notebook()

7、热力图 

from pyecharts.charts import HeatMap
from pyecharts import options as opts
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
from random import randint
# 生成图表中的具体数据
value = [[i, j, randint(-20, 40)] for i in range(24) for j in range(7)]
# 绘制图表
hp = (
    HeatMap()
    .add_xaxis(Faker.clock)
    .add_yaxis('温度',Faker.week,value)
    .set_global_opts(
        visualmap_opts=opts.VisualMapOpts(min_=-10,max_=50)
    )
)
# 渲染图表
hp.render_notebook()