数据可视化——pyecharts库绘图

 目录

官方文档

使用说明: 

点击基本图表

可以点击你想要的图表

安装:

 一些例图:

柱状图:

 效果:

 折线图:

 效果:

环形图:

效果: 

 南丁格尔图(玫瑰图):

效果:

堆叠折线图:

效果:

堆叠柱状图:

 ​编辑

 拟合散点曲线图:




官方文档

使用说明: 

点击基本图表

  • 可以点击你想要的图表

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

安装:

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

 一些例图:

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

柱状图:

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文件

 效果:

 折线图:

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()

 效果:

环形图:

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()

效果: 

 南丁格尔图(玫瑰图):

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()

效果:

堆叠折线图:


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()

效果:

堆叠柱状图:

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()

 

 拟合散点曲线图:

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()

相关推荐

  1. Pyecharts:Python数据的神器

    2024-06-14 21:04:05       35 阅读
  2. 第九章 数据pyecharts

    2024-06-14 21:04:05       38 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-14 21:04:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-14 21:04:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-14 21:04:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-14 21:04:05       18 阅读

热门阅读

  1. 789456

    2024-06-14 21:04:05       8 阅读
  2. 云原生周刊:Kubernetes 十周年 | 2024.6.11

    2024-06-14 21:04:05       11 阅读
  3. Spring框架中哪些地方使用了反射

    2024-06-14 21:04:05       8 阅读
  4. 深入浅出MyBatis:全面解析与实战指南

    2024-06-14 21:04:05       9 阅读
  5. 二维码扫描,没有生成,生成比较复杂

    2024-06-14 21:04:05       7 阅读
  6. 43、Flink 自定义窗口触发器代码示例

    2024-06-14 21:04:05       8 阅读
  7. 针对oracle系列数据库慢数据量大的问题

    2024-06-14 21:04:05       8 阅读
  8. git本地配置及IDEA下Git合并部分文件

    2024-06-14 21:04:05       8 阅读