• 数据可视化——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()

  • 相关阅读:
    手搓一个ubuntu自动安装python3.9的sh脚本
    MySQL压缩包方式安装,傻瓜式教学
    Switchquery:移动端秒级配置触达平台
    卧槽,Log4j2 再爆雷,Log4j v2.17.0 横空出世。。。
    gcd(最大公约数)和lcm(最小公倍数)的代码
    云尘靶场 Medium_Socnet 内网为docker 无站代理 不存在gcc的提权方式 解决ldd过高无法执行exp 指定so文件
    搭建vue3源码学习环境
    【UE5 C++ 學習日志】01. UEnhancedInput
    Spring Boot整合Zookeeper实现分布式锁
    程序员如何“升级打怪”?我用了这几个“歪瓜”!
  • 原文地址:https://blog.csdn.net/2301_80544540/article/details/139581601