• 数据可视化——pyecharts库绘图


     目录

    官方文档

    使用说明: 

    点击基本图表

    可以点击你想要的图表

    安装:

     一些例图:

    柱状图:

     效果:

     折线图:

     效果:

    环形图:

    效果: 

     南丁格尔图(玫瑰图):

    效果:

    堆叠折线图:

    效果:

    堆叠柱状图:

     ​编辑

     拟合散点曲线图:




    官方文档

    使用说明: 

    点击基本图表

    • 可以点击你想要的图表

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

    安装:

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

     一些例图:

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

    柱状图:

    1. import pandas as pd
    2. from pyecharts import options as opts
    3. from pyecharts.charts import Bar
    4. from pyecharts.globals import ThemeType
    5. # 加载数据集
    6. data = pd.read_csv(r'D:\Dabby\Documents\数据可视化\gdp.csv',encoding='utf-8')
    7. # 提取2016年的数据并按GDP降序排列取前10个省份
    8. data_2016 = data[['province','2016']]
    9. top_10_gdp = data_2016['2016'].sort_values(ascending=False).head(10)
    10. top_10_province = data_2016.loc[top_10_gdp.index, 'province']
    11. # 获取省份和GDP数据
    12. provinces = top_10_province.tolist()
    13. gdp_values = top_10_gdp.tolist()
    14. # 使用Pyecharts绘制柱状图
    15. init_opts=opts.InitOpts(width='1000px',height='450px',theme=ThemeType.LIGHT)
    16. bar = (
    17. Bar()
    18. .add_xaxis(provinces)
    19. .add_yaxis("GDP",gdp_values)
    20. .set_global_opts(
    21. title_opts=opts.TitleOpts(title="2016年全国排名前10的省份GDP"),
    22. xaxis_opts=opts.AxisOpts(name="省份"),
    23. yaxis_opts=opts.AxisOpts(name="GDP(亿元)"),
    24. )
    25. )
    26. bar.render_notebook() # 将图表保存为HTML文件

     效果:

     折线图

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

     效果:

    环形图:

    1. import matplotlib.pyplot as plt
    2. from pyecharts import options as opts
    3. from pyecharts.charts import Pie # 导入 Pie 类
    4. data = pd.read_csv(r'D:\Dabby\Documents\数据可视化\gdp.csv',encoding='utf-8')
    5. data_2014 = data[['province', '2014']]
    6. top_10_gdp = data_2014['2014'].sort_values(ascending=False).head(10)
    7. top_10_province = data_2014.loc[top_10_gdp.index, 'province']
    8. gdp = top_10_gdp.tolist()
    9. provinces = top_10_province.tolist()
    10. pie=Pie()
    11. pie.add('',[list(z)for z in zip(provinces,gdp)],radius=[70, 150])
    12. pie.set_global_opts(title_opts=opts.TitleOpts(title='2024年全国各省GDP排名前十的省份', pos_top="5%"),
    13. legend_opts=opts.LegendOpts(pos_bottom="5%")
    14. )
    15. pie.set_series_opts(label_opts=opts.LabelOpts(formatter='{b}:{c}亿元({d}%)'))
    16. pie.render_notebook()

    效果: 

     南丁格尔图(玫瑰图):

    1. import matplotlib.pyplot as plt
    2. from pyecharts import options as opts
    3. from pyecharts.charts import Page, Pie
    4. data = pd.read_csv(r'D:\Dabby\Documents\数据可视化\gdp.csv',encoding='utf-8')
    5. data_gx=data.loc[19]
    6. #获取广西近八年GDP数据
    7. year_gx=data_gx.index.to_list()[1:]
    8. year_gx=year_gx[:8]
    9. gdp_gx=list(data_gx.values)[1:][:8]
    10. #获取江苏近八年GDP数据
    11. data_js=data.loc[9]
    12. year_js=data_js.index.to_list()[1:][:8]
    13. gdp_js=list(data_js.values)[1:][:8]
    14. # 绘制广西南丁格尔玫瑰图(area型)
    15. guangxi_pie = (
    16. Pie()
    17. .add(
    18. series_name="广西近8年的GDP", # 系列名称
    19. data_pair=[list(z) for z in zip(year_gx, gdp_gx)], # 数据对,形如 [('2014', 100), ('2015', 120), ...]
    20. radius=[50, 200], # 设置半径,形成南丁格尔玫瑰图
    21. rosetype="area", # 设置玫瑰图类型为 area
    22. )
    23. .set_global_opts(
    24. title_opts=opts.TitleOpts(title="广西近8年 GDP 变化"), # 设置标题
    25. legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_right="2%")
    26. )
    27. .set_series_opts(label_opts=opts.LabelOpts(formatter='{b}:{c}(亿元)({d}%)'))
    28. )
    29. # 绘制江苏南丁格尔玫瑰图(radius型)
    30. jiangsu_pie = (
    31. Pie()
    32. .add(
    33. series_name="江苏 GDP 变化", # 系列名称
    34. data_pair=[list(z) for z in zip(year_js, gdp_js)], # 数据对,形如 [('2014', 200), ('2015', 220), ...]
    35. radius=[50, 200], # 设置半径,形成南丁格尔玫瑰图
    36. rosetype="radius", # 设置玫瑰图类型为 radius
    37. )
    38. .set_global_opts(
    39. title_opts=opts.TitleOpts(title="江苏近8年 GDP 变化"), # 设置标题
    40. legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_right="2%")
    41. )
    42. .set_series_opts(label_opts=opts.LabelOpts(formatter='{b}:{c}(亿元)({d}%)'))
    43. )
    44. # 创建一个页面,并将两个图添加到页面中
    45. page = Page()
    46. page.add(guangxi_pie)
    47. page.add(jiangsu_pie)
    48. # 渲染并保存 HTML 文件
    49. page.render_notebook()

    效果:

    堆叠折线图:

    1. import pandas as pd
    2. from pyecharts import options as opts
    3. from pyecharts.charts import Line
    4. from pyecharts.globals import ThemeType
    5. from pyecharts import options as opts
    6. data = pd.read_csv(r'D:\Dabby\Documents\数据可视化\gdp.csv')
    7. # 截取北京的数据
    8. data_bj = data.loc[0]
    9. year_bj = data_bj.index.to_list()[1:]
    10. gdp_bj = list(data_bj.values)[1:]
    11. # 截取上海数据
    12. data_sh = data.loc[8]
    13. year_sh = data_sh.index.to_list()[1:]
    14. gdp_sh = list(data_sh.values)[1:]
    15. # 截取广东数据
    16. data_gd = data.loc[18]
    17. year_gd = data_gd.index.to_list()[1:]
    18. gdp_gd = list(data_gd.values)[1:]
    19. # 创建堆叠面积图对象
    20. line = Line()
    21. # 添加数据并设置堆叠属性
    22. line.add_xaxis(year_bj)
    23. line.add_yaxis("北京", gdp_bj, is_smooth=True, stack="stack1", areastyle_opts=opts.AreaStyleOpts(opacity=0.5))
    24. line.add_yaxis("上海", gdp_sh, is_smooth=True, stack="stack1", areastyle_opts=opts.AreaStyleOpts(opacity=0.5))
    25. line.add_yaxis("广东", gdp_gd, is_smooth=True, stack="stack1", areastyle_opts=opts.AreaStyleOpts(opacity=0.5))
    26. # 设置全局配置项
    27. line.set_global_opts(
    28. title_opts=opts.TitleOpts(title="北京、上海、广东历年GDP变化堆叠面积图"),
    29. xaxis_opts=opts.AxisOpts(type_="category", boundary_gap=False),
    30. yaxis_opts=opts.AxisOpts(type_="value", name="GDP(亿元)"),
    31. tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross")
    32. )
    33. # 渲染图像
    34. line.render_notebook()

    效果:

    堆叠柱状图

    1. from pyecharts.charts import Bar
    2. import pandas as pd
    3. from pyecharts import options as opts
    4. from pyecharts.globals import ThemeType
    5. #截取广西数据
    6. data = pd.read_csv(r'D:\Dabby\Documents\数据可视化\gdp.csv')
    7. data_gx=data.loc[19]
    8. year_gx=data_gx.index.to_list()[1:][::-1]
    9. gdp_gx=list(data_gx.values)[1:][::-1]
    10. #截取广东数据
    11. data_gd=data.loc[18]
    12. year_gd=data_gd.index.to_list()[1:][::-1]
    13. gdp_gd=list(data_gd.values)[1:][::-1]
    14. # 绘制堆叠柱状图
    15. bar = Bar() # 注意:这里你可能需要导入InitOpts,但在某些版本的Pyecharts中可能不是必需的
    16. bar.add_xaxis(year_gx)
    17. # 注意:添加stack参数并将值设置为相同的字符串(例如'gdp'),以使序列堆叠
    18. bar.add_yaxis("广西", gdp_gx, stack="gdp")
    19. bar.add_yaxis("广东", gdp_gd, stack="gdp")
    20. bar.set_global_opts(
    21. title_opts=opts.TitleOpts(title="近年来广西和广东的GDP趋势"),
    22. xaxis_opts=opts.AxisOpts(type_="category"),
    23. yaxis_opts=opts.AxisOpts(type_="value", name="GDP (亿元)"),
    24. legend_opts=opts.LegendOpts(pos_left="center", pos_top="top")
    25. )
    26. bar.render_notebook()

     

     拟合散点曲线图:

    1. mport pandas as pd
    2. import numpy as np
    3. from pyecharts import options as opts
    4. from pyecharts.charts import Line
    5. from pyecharts.charts import Scatter
    6. from pyecharts.globals import ThemeType
    7. data=pd.read_csv(r"D:\Dabby\Documents\数据可视化\gdp.csv",encoding='utf-8')
    8. #截取广西数据
    9. data_gx=data.loc[19]
    10. year_gx=data_gx.index.to_list()[1:]
    11. gdp_gx=list(data_gx.values)[1:]
    12. #先绘制散点图
    13. scatter=Scatter()
    14. scatter.add_xaxis(year_gx)
    15. scatter.add_yaxis("GDP",gdp_gx)
    16. scatter.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    17. scatter.set_global_opts(title_opts=opts.TitleOpts(title='广西的20年gdp散点拟合曲线'))
    18. scatter.render_notebook()
    19. #计算拟合三次多项式的x,y,z
    20. year_gx_float = np.array(year_gx, dtype=float)
    21. gdp_gx_float = np.array(gdp_gx, dtype=float)
    22. poly=np.polyfit(year_gx_float,gdp_gx_float,deg=3)
    23. #绘制拟合曲线散点图
    24. line=Line()
    25. line.add_xaxis(list(year_gx))
    26. line.add_yaxis('GDP', np.polyval(poly, year_gx_float))
    27. line.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    28. scatter.overlap(line)
    29. scatter.render_notebook()

  • 相关阅读:
    vue项目中 commonJS转es6
    计算机图像编码入门篇(上)
    概率统计面试题
    【vb.net】轻量JSON序列及反序列化
    数据结构与算法【队列】的Java实现
    mysql 密码修改
    可观察性支柱:探索日志、指标和跟踪
    JavaScript 关联数组
    Oracle 字符集与编码详解
    Java中的多重继承问题
  • 原文地址:https://blog.csdn.net/2301_80544540/article/details/139581601