数据可视化——pyecharts库绘图

目录

官方文档

使用说明:

点击基本图表

可以点击你想要的图表

安装:

一些例图:

柱状图:

效果:

折线图:

效果:

环形图:

效果:

南丁格尔图(玫瑰图):

效果:

堆叠折线图:

效果:

堆叠柱状图:

​编辑

拟合散点曲线图:


官方文档

使用说明:

点击基本图表

可以点击你想要的图表

  • 可以点击Demo里面有例图以及代码,可以复制下来再根据需求来改
  • 要查询图表的配置也可以到全局配置里面查找

安装:

复制代码
pip install pyecharts -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

一些例图:

这里引用的是一个全国各省份的GDP数据(需要拿来练习的可以私我拿数据~)

柱状图:

python 复制代码
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.globals import ThemeType

# 加载数据集
data = pd.read_csv(r'D:\Dabby\Documents\数据可视化\gdp.csv',encoding='utf-8')

# 提取2016年的数据并按GDP降序排列取前10个省份
data_2016 = data[['province','2016']]
top_10_gdp = data_2016['2016'].sort_values(ascending=False).head(10)
top_10_province = data_2016.loc[top_10_gdp.index, 'province']
# 获取省份和GDP数据
provinces = top_10_province.tolist()
gdp_values = top_10_gdp.tolist()

# 使用Pyecharts绘制柱状图
init_opts=opts.InitOpts(width='1000px',height='450px',theme=ThemeType.LIGHT)
bar = (
    Bar()
    .add_xaxis(provinces)
    .add_yaxis("GDP",gdp_values)
    .set_global_opts(
        title_opts=opts.TitleOpts(title="2016年全国排名前10的省份GDP"),
        xaxis_opts=opts.AxisOpts(name="省份"),  
        yaxis_opts=opts.AxisOpts(name="GDP(亿元)"),
    )
)
bar.render_notebook()  # 将图表保存为HTML文件

效果:

折线图:

python 复制代码
from pyecharts.charts import Line
from pyecharts import options as opts
data = pd.read_csv(r'D:\Dabby\Documents\数据可视化\gdp.csv',encoding='utf-8')
data_gx=data.loc[19]
data_gx
year_gx=data_gx.index.to_list()[1:][::-1]
gdp=list(data_gx.values)[1:][::-1]
years=year_gx[:10]
line = (
    Line()
    .add_xaxis(years)
    .add_yaxis("广西GDP", gdp)  # 设置曲线光滑
    .set_global_opts(
        title_opts=opts.TitleOpts(title="广西1997年至2016年的折线图"),
        xaxis_opts=opts.AxisOpts(name="年份"),
        yaxis_opts=opts.AxisOpts(name="GDP")  # 在这里添加逗号
    )
)

line.render_notebook()

效果:

环形图:

python 复制代码
import matplotlib.pyplot as plt
from pyecharts import options as opts
from pyecharts.charts import Pie  # 导入 Pie 类
data = pd.read_csv(r'D:\Dabby\Documents\数据可视化\gdp.csv',encoding='utf-8')
data_2014 = data[['province', '2014']]
top_10_gdp = data_2014['2014'].sort_values(ascending=False).head(10)
top_10_province = data_2014.loc[top_10_gdp.index, 'province']
gdp = top_10_gdp.tolist()
provinces = top_10_province.tolist()

pie=Pie()
pie.add('',[list(z)for z in zip(provinces,gdp)],radius=[70, 150])
pie.set_global_opts(title_opts=opts.TitleOpts(title='2024年全国各省GDP排名前十的省份', pos_top="5%"),
    legend_opts=opts.LegendOpts(pos_bottom="5%")
                    
)
pie.set_series_opts(label_opts=opts.LabelOpts(formatter='{b}:{c}亿元({d}%)'))
pie.render_notebook()

效果:

南丁格尔图(玫瑰图):

python 复制代码
import matplotlib.pyplot as plt
from pyecharts import options as opts
from pyecharts.charts import Page, Pie
data = pd.read_csv(r'D:\Dabby\Documents\数据可视化\gdp.csv',encoding='utf-8')
data_gx=data.loc[19]
#获取广西近八年GDP数据
year_gx=data_gx.index.to_list()[1:]
year_gx=year_gx[:8]
gdp_gx=list(data_gx.values)[1:][:8]

#获取江苏近八年GDP数据
data_js=data.loc[9]
year_js=data_js.index.to_list()[1:][:8]
gdp_js=list(data_js.values)[1:][:8]

# 绘制广西南丁格尔玫瑰图(area型)
guangxi_pie = (
    Pie()
    .add(
        series_name="广西近8年的GDP",  # 系列名称
        data_pair=[list(z) for z in zip(year_gx, gdp_gx)],  # 数据对,形如 [('2014', 100), ('2015', 120), ...]
        radius=[50, 200],  # 设置半径,形成南丁格尔玫瑰图
        rosetype="area",  # 设置玫瑰图类型为 area
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="广西近8年 GDP 变化"),  # 设置标题
        legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_right="2%")
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter='{b}:{c}(亿元)({d}%)'))
)

# 绘制江苏南丁格尔玫瑰图(radius型)
jiangsu_pie = (
    Pie()
    .add(
        series_name="江苏 GDP 变化",  # 系列名称
        data_pair=[list(z) for z in zip(year_js, gdp_js)],  # 数据对,形如 [('2014', 200), ('2015', 220), ...]
        radius=[50, 200],  # 设置半径,形成南丁格尔玫瑰图
        rosetype="radius",  # 设置玫瑰图类型为 radius
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="江苏近8年 GDP 变化"),  # 设置标题
        legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_right="2%")
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter='{b}:{c}(亿元)({d}%)'))
)

# 创建一个页面,并将两个图添加到页面中
page = Page()
page.add(guangxi_pie)
page.add(jiangsu_pie)

# 渲染并保存 HTML 文件
page.render_notebook()

效果:

堆叠折线图:

python 复制代码
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Line
from pyecharts.globals import ThemeType
from pyecharts import options as opts
data = pd.read_csv(r'D:\Dabby\Documents\数据可视化\gdp.csv')
# 截取北京的数据
data_bj = data.loc[0]
year_bj = data_bj.index.to_list()[1:]
gdp_bj = list(data_bj.values)[1:]

# 截取上海数据
data_sh = data.loc[8]
year_sh = data_sh.index.to_list()[1:]
gdp_sh = list(data_sh.values)[1:]

# 截取广东数据
data_gd = data.loc[18]
year_gd = data_gd.index.to_list()[1:]
gdp_gd = list(data_gd.values)[1:]

# 创建堆叠面积图对象
line = Line()

# 添加数据并设置堆叠属性
line.add_xaxis(year_bj)
line.add_yaxis("北京", gdp_bj, is_smooth=True, stack="stack1", areastyle_opts=opts.AreaStyleOpts(opacity=0.5))
line.add_yaxis("上海", gdp_sh, is_smooth=True, stack="stack1", areastyle_opts=opts.AreaStyleOpts(opacity=0.5))
line.add_yaxis("广东", gdp_gd, is_smooth=True, stack="stack1", areastyle_opts=opts.AreaStyleOpts(opacity=0.5))

# 设置全局配置项
line.set_global_opts(
    title_opts=opts.TitleOpts(title="北京、上海、广东历年GDP变化堆叠面积图"),
    xaxis_opts=opts.AxisOpts(type_="category", boundary_gap=False),
    yaxis_opts=opts.AxisOpts(type_="value", name="GDP(亿元)"),
    tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross")
)

# 渲染图像
line.render_notebook()

效果:

堆叠柱状图:

python 复制代码
from pyecharts.charts import Bar
import pandas as pd
from pyecharts import options as opts
from pyecharts.globals import ThemeType

#截取广西数据
data = pd.read_csv(r'D:\Dabby\Documents\数据可视化\gdp.csv')
data_gx=data.loc[19]
year_gx=data_gx.index.to_list()[1:][::-1]
gdp_gx=list(data_gx.values)[1:][::-1]

#截取广东数据
data_gd=data.loc[18]
year_gd=data_gd.index.to_list()[1:][::-1]
gdp_gd=list(data_gd.values)[1:][::-1]


# 绘制堆叠柱状图  
bar = Bar()  # 注意:这里你可能需要导入InitOpts,但在某些版本的Pyecharts中可能不是必需的  
bar.add_xaxis(year_gx)  
# 注意:添加stack参数并将值设置为相同的字符串(例如'gdp'),以使序列堆叠  
bar.add_yaxis("广西", gdp_gx, stack="gdp")  
bar.add_yaxis("广东", gdp_gd, stack="gdp")  
  
bar.set_global_opts(  
    title_opts=opts.TitleOpts(title="近年来广西和广东的GDP趋势"),  
    xaxis_opts=opts.AxisOpts(type_="category"),  
    yaxis_opts=opts.AxisOpts(type_="value", name="GDP (亿元)"),  
    legend_opts=opts.LegendOpts(pos_left="center", pos_top="top")  
)  
bar.render_notebook()

拟合散点曲线图:

python 复制代码
mport pandas as pd
import numpy as np
from pyecharts import options as opts
from pyecharts.charts import Line
from pyecharts.charts import Scatter
from pyecharts.globals import ThemeType
data=pd.read_csv(r"D:\Dabby\Documents\数据可视化\gdp.csv",encoding='utf-8')
#截取广西数据
data_gx=data.loc[19]
year_gx=data_gx.index.to_list()[1:]
gdp_gx=list(data_gx.values)[1:]
#先绘制散点图
scatter=Scatter()
scatter.add_xaxis(year_gx)
scatter.add_yaxis("GDP",gdp_gx)
scatter.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
scatter.set_global_opts(title_opts=opts.TitleOpts(title='广西的20年gdp散点拟合曲线')) 
scatter.render_notebook()
#计算拟合三次多项式的x,y,z
year_gx_float = np.array(year_gx, dtype=float)  
gdp_gx_float = np.array(gdp_gx, dtype=float)  
poly=np.polyfit(year_gx_float,gdp_gx_float,deg=3)
#绘制拟合曲线散点图
line=Line()
line.add_xaxis(list(year_gx))  
line.add_yaxis('GDP', np.polyval(poly, year_gx_float))  
line.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
scatter.overlap(line)
scatter.render_notebook()
相关推荐
GIS之路17 小时前
OpenLayers 图层叠加控制
前端·信息可视化
灏瀚星空20 小时前
高频交易技术:订单簿分析与低延迟架构——从Level 2数据挖掘到FPGA硬件加速的全链路解决方案
人工智能·python·算法·信息可视化·fpga开发·架构·数据挖掘
袋鼠云数栈21 小时前
当空间与数据联动,会展中心如何打造智慧运营新范式?
大数据·人工智能·信息可视化
.生产的驴21 小时前
SpringBoot 服务器监控 监控系统开销 获取服务器系统的信息用户信息 运行信息 保持稳定
服务器·spring boot·分布式·后端·spring·spring cloud·信息可视化
我睡醒再说1 天前
HarmonyOS5 运动健康app(二):健康跑步(附代码)
华为·信息可视化·harmonyos·arkts·应用开发
奈斯ing1 天前
【prometheus+Grafana篇】基于Prometheus+Grafana实现postgreSQL数据库的监控与可视化
运维·数据库·信息可视化·grafana·prometheus
cooldream20092 天前
华为云Flexus+DeepSeek征文|基于华为云一键部署Dify平台,接入DeepSeek大模型,构建数据可视化助手应用实战指南
信息可视化·华为云·dify·deepseek大模型
翱翔的猪脑花2 天前
体育赛事直播平台的数据架构:从实时统计到深度洞察
信息可视化
葡萄城技术团队3 天前
Wyn 商业智能与 3D 大屏的深度融合应用
3d·信息可视化