首页 > 编程语言 >Python pyecharts:数据可视化的强大工具

Python pyecharts:数据可视化的强大工具

时间:2024-09-29 13:19:39浏览次数:10  
标签:pyecharts title Python add 可视化 import bar opts

在数据分析和可视化领域,Python 提供了许多优秀的库。其中,pyecharts 是一个功能强大的数据可视化模块,它基于 Echarts 库,能够生成各种精美的图表。本文将深入探讨 Python pyecharts 模块的高级用法,展示其在数据可视化方面的强大功能。

一、pyecharts 简介

pyecharts 是一个用于生成 Echarts 图表的 Python 库。Echarts 是一个由百度开发的开源可视化库,它提供了丰富的图表类型和交互功能。pyecharts 封装了 Echarts 的功能,使得在 Python 中使用 Echarts 变得更加简单和方便。

二、安装和基本用法

  1. 安装

    • 可以使用 pip 命令安装 pyecharts:

         pip install pyecharts
      
  2. 基本用法

    • 以下是一个简单的示例,展示了如何使用 pyecharts 生成一个柱状图:

         from pyecharts.charts import Bar
      
         bar = Bar()
         bar.add_xaxis(["Apple", "Banana", "Orange"])
         bar.add_yaxis("Fruit", [10, 20, 30])
         bar.render("bar_chart.html")
      

      在这个示例中,我们首先导入了Bar类,然后创建了一个柱状图对象。接着,我们使用add_xaxisadd_yaxis方法添加了横坐标和纵坐标的数据。最后,我们使用render方法将图表渲染为一个 HTML 文件。

三、高级用法

(一)图表主题

  1. pyecharts 支持多种图表主题,可以通过设置主题来改变图表的外观。以下是一个示例,展示了如何使用不同的主题:

       from pyecharts.charts import Bar
       from pyecharts import options as opts
       from pyecharts.globals import ThemeType
    
       bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
       bar.add_xaxis(["Apple", "Banana", "Orange"])
       bar.add_yaxis("Fruit", [10, 20, 30])
       bar.set_global_opts(title_opts=opts.TitleOpts(title="Fruit Sales"))
       bar.render("bar_chart_light.html")
    
       bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
       bar.add_xaxis(["Apple", "Banana", "Orange"])
       bar.add_yaxis("Fruit", [10, 20, 30])
       bar.set_global_opts(title_opts=opts.TitleOpts(title="Fruit Sales"))
       bar.render("bar_chart_dark.html")
    

    在这个示例中,我们分别使用了ThemeType.LIGHTThemeType.DARK主题来生成两个不同外观的柱状图。

  2. 自定义主题

    • 除了使用内置的主题,pyecharts 还支持自定义主题。可以通过修改 Echarts 的配置文件来创建自定义主题。以下是一个示例,展示了如何创建一个自定义主题:

         import json
         from pyecharts.charts import Bar
         from pyecharts import options as opts
         from pyecharts.globals import ThemeType
      
         # 读取自定义主题的配置文件
         with open("custom_theme.json", "r", encoding="utf-8") as f:
             custom_theme = json.load(f)
      
         bar = Bar(init_opts=opts.InitOpts(theme=custom_theme))
         bar.add_xaxis(["Apple", "Banana", "Orange"])
         bar.add_yaxis("Fruit", [10, 20, 30])
         bar.set_global_opts(title_opts=opts.TitleOpts(title="Fruit Sales"))
         bar.render("bar_chart_custom.html")
      

      在这个示例中,我们首先读取了一个自定义主题的配置文件custom_theme.json,然后将其作为参数传递给InitOpts来创建一个自定义主题的柱状图。

(二)图表交互

  1. 鼠标悬停提示

    • pyecharts 支持鼠标悬停提示功能,可以在鼠标悬停在图表上时显示详细的数据信息。以下是一个示例,展示了如何设置鼠标悬停提示:

         from pyecharts.charts import Bar
         from pyecharts import options as opts
      
         bar = Bar()
         bar.add_xaxis(["Apple", "Banana", "Orange"])
         bar.add_yaxis("Fruit", [10, 20, 30])
         bar.set_global_opts(
             title_opts=opts.TitleOpts(title="Fruit Sales"),
             tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="shadow")
         )
         bar.render("bar_chart_tooltip.html")
      

      在这个示例中,我们使用tooltip_opts参数设置了鼠标悬停提示的触发方式为axis,并设置了指针类型为shadow

  2. 图表联动

    • pyecharts 支持图表联动功能,可以在多个图表之间进行交互。以下是一个示例,展示了如何实现图表联动:

         from pyecharts.charts import Bar, Line
         from pyecharts import options as opts
      
         bar = Bar()
         bar.add_xaxis(["Apple", "Banana", "Orange"])
         bar.add_yaxis("Fruit", [10, 20, 30])
         bar.set_global_opts(
             title_opts=opts.TitleOpts(title="Fruit Sales"),
             tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="shadow")
         )
      
         line = Line()
         line.add_xaxis(["Apple", "Banana", "Orange"])
         line.add_yaxis("Sales Growth", [5, 10, 15])
         line.set_global_opts(
             title_opts=opts.TitleOpts(title="Sales Growth"),
             tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="shadow")
         )
      
         bar.overlap(line)
         bar.render("bar_line_chart.html")
      

      在这个示例中,我们创建了一个柱状图和一个折线图,并使用overlap方法将它们重叠在一起。这样,当鼠标悬停在一个图表上时,另一个图表也会相应地显示相关的数据信息。

(三)数据可视化技巧

  1. 数据标签

    • pyecharts 支持在图表上显示数据标签,可以更加直观地展示数据。以下是一个示例,展示了如何设置数据标签:

         from pyecharts.charts import Bar
         from pyecharts import options as opts
      
         bar = Bar()
         bar.add_xaxis(["Apple", "Banana", "Orange"])
         bar.add_yaxis("Fruit", [10, 20, 30], label_opts=opts.LabelOpts(is_show=True))
         bar.set_global_opts(
             title_opts=opts.TitleOpts(title="Fruit Sales"),
             tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="shadow")
         )
         bar.render("bar_chart_label.html")
      

      在这个示例中,我们使用label_opts参数设置了数据标签的显示状态为is_show=True

  2. 颜色设置

    • pyecharts 支持自定义图表的颜色,可以根据需要进行调整。以下是一个示例,展示了如何设置图表的颜色:

         from pyecharts.charts import Bar
         from pyecharts import options as opts
      
         bar = Bar()
         bar.add_xaxis(["Apple", "Banana", "Orange"])
         bar.add_yaxis("Fruit", [10, 20, 30], itemstyle_opts=opts.ItemStyleOpts(color="#FF7F50"))
         bar.set_global_opts(
             title_opts=opts.TitleOpts(title="Fruit Sales"),
             tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="shadow")
         )
         bar.render("bar_chart_color.html")
      

      在这个示例中,我们使用itemstyle_opts参数设置了柱状图的颜色为#FF7F50

  3. 图表组合

    • pyecharts 支持将多个图表组合在一起,可以创建更加复杂的数据可视化效果。以下是一个示例,展示了如何组合多个图表:

         from pyecharts.charts import Bar, Line, Pie
         from pyecharts import options as opts
      
         bar = Bar()
         bar.add_xaxis(["Apple", "Banana", "Orange"])
         bar.add_yaxis("Fruit", [10, 20, 30])
         bar.set_global_opts(
             title_opts=opts.TitleOpts(title="Fruit Sales"),
             tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="shadow")
         )
      
         line = Line()
         line.add_xaxis(["Apple", "Banana", "Orange"])
         line.add_yaxis("Sales Growth", [5, 10, 15])
         line.set_global_opts(
             title_opts=opts.TitleOpts(title="Sales Growth"),
             tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="shadow")
         )
      
         pie = Pie()
         pie.add("", [("Apple", 10), ("Banana", 20), ("Orange", 30)])
         pie.set_global_opts(
             title_opts=opts.TitleOpts(title="Fruit Distribution"),
             tooltip_opts=opts.TooltipOpts(trigger="item")
         )
      
         bar.overlap(line)
         bar.render("bar_line_chart.html")
         pie.render("pie_chart.html")
      

      在这个示例中,我们创建了一个柱状图、一个折线图和一个饼图,并分别将它们渲染为不同的 HTML 文件。可以根据需要将这些图表组合在一起,展示更加全面的数据可视化效果。

四、实际应用案例

(一)数据分析报告

  1. 使用 pyecharts 可以创建数据分析报告中的可视化部分,使报告更加直观和易于理解。以下是一个示例,展示了如何使用 pyecharts 生成一个数据分析报告:

       import pandas as pd
       from pyecharts.charts import Bar, Line, Pie
       from pyecharts import options as opts
    
       # 读取数据
       data = pd.read_csv("sales_data.csv")
    
       # 柱状图:销售数量
       bar = Bar()
       bar.add_xaxis(data["product"].tolist())
       bar.add_yaxis("Sales Quantity", data["quantity"].tolist())
       bar.set_global_opts(
           title_opts=opts.TitleOpts(title="Sales Quantity by Product"),
           tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="shadow")
       )
    
       # 折线图:销售趋势
       line = Line()
       line.add_xaxis(data["date"].tolist())
       line.add_yaxis("Sales Trend", data["sales"].tolist())
       line.set_global_opts(
           title_opts=opts.TitleOpts(title="Sales Trend over Time"),
           tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="shadow")
       )
    
       # 饼图:产品分布
       pie = Pie()
       pie.add("", [(row["product"], row["quantity"]) for _, row in data.iterrows()])
       pie.set_global_opts(
           title_opts=opts.TitleOpts(title="Product Distribution"),
           tooltip_opts=opts.TooltipOpts(trigger="item")
       )
    
       # 组合图表并渲染
       bar.overlap(line)
       bar.render("sales_report.html")
       pie.render("product_distribution.html")
    

    在这个示例中,我们首先读取了一个销售数据的 CSV 文件,然后使用 pyecharts 创建了一个柱状图、一个折线图和一个饼图,分别展示了销售数量、销售趋势和产品分布。最后,我们将这些图表组合在一起,生成了一个数据分析报告。

  2. 动态数据分析报告

    • pyecharts 还可以与实时数据结合,创建动态的数据分析报告。以下是一个示例,展示了如何使用 pyecharts 生成一个动态的数据分析报告:

         import pandas as pd
         from pyecharts.charts import Bar, Line, Pie
         from pyecharts import options as opts
         from pyecharts.globals import ThemeType
      
         # 读取数据
         data = pd.read_csv("sales_data.csv")
      
         # 初始化图表
         bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
         line = Line(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
         pie = Pie(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
      
         # 添加数据
         bar.add_xaxis(data["product"].tolist())
         bar.add_yaxis("Sales Quantity", data["quantity"].tolist())
         bar.set_global_opts(
             title_opts=opts.TitleOpts(title="Sales Quantity by Product"),
             tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="shadow")
         )
      
         line.add_xaxis(data["date"].tolist())
         line.add_yaxis("Sales Trend", data["sales"].tolist())
         line.set_global_opts(
             title_opts=opts.TitleOpts(title="Sales Trend over Time"),
             tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="shadow")
         )
      
         pie.add("", [(row["product"], row["quantity"]) for _, row in data.iterrows()])
         pie.set_global_opts(
             title_opts=opts.TitleOpts(title="Product Distribution"),
             tooltip_opts=opts.TooltipOpts(trigger="item")
         )
      
         # 定时更新数据
         import time
         while True:
             new_data = pd.read_csv("sales_data.csv")
             bar.replace_data([new_data["product"].tolist(), new_data["quantity"].tolist()])
             line.replace_data([new_data["date"].tolist(), new_data["sales"].tolist()])
             pie.replace_data([[(row["product"], row["quantity"]) for _, row in new_data.iterrows()]])
             time.sleep(5)
      

      在这个示例中,我们首先读取了一个销售数据的 CSV 文件,然后使用 pyecharts 创建了一个柱状图、一个折线图和一个饼图。接着,我们使用一个无限循环定时读取新的数据,并更新图表。这样,就可以创建一个动态的数据分析报告,实时展示销售数据的变化。

(二)数据监控仪表盘

  1. pyecharts 可以用于创建数据监控仪表盘,实时展示关键指标的变化。以下是一个示例,展示了如何使用 pyecharts 生成一个数据监控仪表盘:

       from pyecharts.charts import Gauge
       from pyecharts import options as opts
    
       # 模拟数据
       data = 75
    
       # 创建仪表盘
       gauge = Gauge()
       gauge.add("", [("指标名称", data)])
       gauge.set_global_opts(
           title_opts=opts.TitleOpts(title="数据监控仪表盘"),
           tooltip_opts=opts.TooltipOpts(formatter="{a} <br/>{b} : {c}%")
       )
    
       # 渲染图表
       gauge.render("dashboard.html")
    

    在这个示例中,我们模拟了一个数据指标的值为 75,然后使用 pyecharts 创建了一个仪表盘图表,展示了这个指标的当前值。可以根据实际需求扩展这个示例,添加更多的指标和图表,创建一个完整的数据监控仪表盘。

  2. 多指标数据监控仪表盘

    • pyecharts 还可以创建多指标的数据监控仪表盘,同时展示多个关键指标的变化。以下是一个示例,展示了如何使用 pyecharts 生成一个多指标的数据监控仪表盘:

         from pyecharts.charts import Gauge, Bar, Line
         from pyecharts import options as opts
      
         # 模拟数据
         data1 = 75
         data2 = [("指标 1", 50), ("指标 2", 80), ("指标 3", 60)]
         data3 = [("日期 1", 100), ("日期 2", 120), ("日期 3", 110)]
      
         # 创建仪表盘
         gauge = Gauge()
         gauge.add("", [("指标名称 1", data1)])
         gauge.set_global_opts(
             title_opts=opts.TitleOpts(title="数据监控仪表盘"),
             tooltip_opts=opts.TooltipOpts(formatter="{a} <br/>{b} : {c}%")
         )
      
         # 创建柱状图
         bar = Bar()
         bar.add_xaxis([d[0] for d in data2])
         bar.add_yaxis("指标名称 2", [d[1] for d in data2])
         bar.set_global_opts(
             title_opts=opts.TitleOpts(title="指标名称 2 变化"),
             tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="shadow")
         )
      
         # 创建折线图
         line = Line()
         line.add_xaxis([d[0] for d in data3])
         line.add_yaxis("指标名称 3", [d[1] for d in data3])
         line.set_global_opts(
             title_opts=opts.TitleOpts(title="指标名称 3 变化"),
             tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="shadow")
         )
      
         # 组合图表并渲染
         gauge.render("dashboard_gauge
      
    • 可以进一步将这些图表整合到一个页面中,以提供更全面的数据监控视图。使用 HTML 和 CSS 可以对页面进行布局和美化,使仪表盘更加直观和易于理解。

         <!DOCTYPE html>
         <html>
         <head>
             <title>数据监控仪表盘</title>
             <style>
                .chart-container {
                     display: flex;
                     justify-content: space-around;
                 }
             </style>
         </head>
         <body>
             <div class="chart-container">
                 <iframe src="dashboard_gauge.html" width="300" height="200"></iframe>
                 <iframe src="dashboard_bar.html" width="300" height="200"></iframe>
                 <iframe src="dashboard_line.html" width="300" height="200"></iframe>
             </div>
         </body>
         </html>
      

(三)地理数据可视化

  1. pyecharts 提供了丰富的地理图表类型,可以用于展示地理数据。以下是一个示例,展示了如何使用 pyecharts 生成一个地图图表:

       from pyecharts.charts import Map
       from pyecharts import options as opts
    
       # 模拟数据
       data = [("北京", 100), ("上海", 80), ("广州", 70), ("深圳", 60)]
    
       # 创建地图
       map_chart = Map()
       map_chart.add("", data, "china")
       map_chart.set_global_opts(
           title_opts=opts.TitleOpts(title="城市数据地图"),
           visualmap_opts=opts.VisualMapOpts(max_=100, min_=0)
       )
    
       # 渲染图表
       map_chart.render("city_map.html")
    

    在这个示例中,我们模拟了一些城市的数据,并使用 pyecharts 的Map类创建了一个中国地图图表,展示了不同城市的数据。可以根据实际需求扩展这个示例,展示更多的地理数据和属性。

  2. 动态地理数据可视化

    • pyecharts 还可以与实时地理数据结合,创建动态的地理数据可视化。以下是一个示例,展示了如何使用 pyecharts 生成一个动态的地图图表:

         import time
         from pyecharts.charts import Map
         from pyecharts import options as opts
      
         # 初始化地图
         map_chart = Map()
         map_chart.add("", [], "china")
         map_chart.set_global_opts(
             title_opts=opts.TitleOpts(title="动态城市数据地图"),
             visualmap_opts=opts.VisualMapOpts(max_=100, min_=0)
         )
      
         # 模拟实时数据更新
         while True:
             new_data = [("北京", time.time() % 100), ("上海", time.time() % 80), ("广州", time.time() % 70), ("深圳", time.time() % 60)]
             map_chart.add("", new_data, "china")
             map_chart.render("dynamic_city_map.html")
             time.sleep(5)
      

      在这个示例中,我们使用一个无限循环模拟实时数据更新,并每 5 秒更新一次地图图表。可以根据实际需求连接到真实的数据源,以实现更复杂的动态地理数据可视化。

五、总结

Python 的 pyecharts 模块为数据可视化提供了强大的工具和丰富的功能。通过掌握其高级用法,如图表主题、交互功能、数据可视化技巧以及在实际应用中的案例,可以创建出专业、美观且具有交互性的数据可视化作品。无论是数据分析报告、数据监控仪表盘还是地理数据可视化,pyecharts 都能满足各种需求,帮助你更好地理解和传达数据中的信息。在实际应用中,可以根据具体的数据分析需求和场景,灵活运用 pyecharts 的各种功能,以实现更高效的数据可视化和分析。

标签:pyecharts,title,Python,add,可视化,import,bar,opts
From: https://blog.csdn.net/liuhailong0511/article/details/142525912

相关文章

  • python 使用 pyinstaller 打包
    python使用pyinstaller打包1、下载pyinstallerpipinstallpyinstaller2、在当前目录下生成.spec文件注意,这行命令在生成文件的时候,也打包了输出物pyinstaller--name=pytaskermain.py--onefile--specpath=.2.1、生成的目录结构D:.│main.py│pytasker.spe......
  • (赠源码)Python+django+echars+MySQL+爬虫+大屏 boss直聘数据分析可视化系统的设计与实
    摘要随着互联网的飞速发展和技术的不断进步,数据分析和可视化技术在各个领域都扮演着越来越重要的角色。在人才招聘领域,招聘平台作为连接求职者和招聘公司的重要平台,需要不断创新和提升服务体验。设计和实现一个boss直聘数据分析可视化系统,可以帮助BOSS直聘平台更好地利用数......
  • 掌握Python的hasattr()函数
    掌握Python的hasattr()函数在Python编程中,hasattr()函数是一个非常实用的内置函数,它允许我们动态地检查一个对象是否拥有某个属性。这个功能在编写灵活、可扩展的代码时尤为重要,特别是在处理不确定的对象或需要兼容多种类型的对象时。本文将详细介绍hasattr()函数的基本用法、高......
  • 使用主题河流图进行数据可视化
    目录前言正文前言本文是Web数据可视化案例系列文章的第三篇。文章介绍主题河流图的用法。首先介绍主题河流图与堆叠柱状图的区别,其次详细说明如何使用主题河流图展示数据。当我们面对一组具有2个维度属性的数据时,如果不使用可视化手段,很难抓到正确的数据趋势。对于这种......
  • Python MagicMock Mock 变量的强大工具
    PythonMagicMock:Mock变量的强大工具在Python的测试框架中,特别是单元测试中,unittest.mock模块提供了一种有效的方法来创建测试替身(mock),其中MagicMock是一个非常强大的工具。使用MagicMock你可以模拟复杂的对象行为,而不需要实际实现它们。在本文中,我们将探讨Magi......
  • [Python手撕]文本左右对齐
    classSolution:deffullJustify(self,words:List[str],maxWidth:int)->List[str]:deffindlen(level):count=0forlinlevel:count+=len(l)returncountn=len(words)......
  • Python量化分析2024年最新整理的免费获取股票数据接口集合以及API数据接口说明文档
    ​近一两年来,股票量化分析逐渐受到广泛关注。而作为这一领域的初学者,首先需要面对的挑战就是如何获取全面且准确的股票数据。因为无论是实时交易数据、历史交易记录、财务数据还是基本面信息,这些数据都是我们进行量化分析时不可或缺的宝贵资源。我们的核心任务是从这些数据......
  • Python3开启自带http服务
    有时候需要在局域网的电脑之间传送一些东西,或者在虚拟机之间传送一些东西。如果电脑上有安装了Python的话,其实非常方便,可以临时搭建一个HTTP服务器传送东西,一句命令就搞定了。而且这东西本身是Python内置的功能。1.基本方式Python中自带了简单的服务器程序,能较容易地打开服务......
  • Python近红外光谱数据分析
    ChatGPT4入门1、ChatGPT概述(GPT-1、GPT-2、GPT-3、GPT-3.5、GPT-4模型的演变)2、ChatGPT对话初体验3、GPT-4与GPT-3.5的区别,以及与国内大语言模型(文心一言、星火等)的区别4、ChatGPT科研必备插件(DataInterpreter、Wolfram、WebPilot、MixerBoxScholar、ScholarAI、ShowMe......
  • 如何用Python的Seaborn库绘制17个超好看图表!
    Seaborn简介定义Seaborn是一个基于matplotlib且数据结构与pandas统一的统计图制作库。Seaborn框架旨在以数据可视化为中心来挖掘与理解数据。优点代码较少图形美观功能齐全主流模块安装pip命令安装从github安装流程导入绘图模块提供显示条件导入数据设......