当前位置: 首页 > news >正文

pyecharts常用图形

pyecharts常用图形

官网:https://pyecharts.org/#/zh-cn/

pyecharts

快速开始

pip安装

pip install pyecharts

源码安装

git clone https://github.com/pyecharts/pyecharts.git
cd pyecharts
pip install -r requirements.txt
python setup.py install
# 或者执行 python install.py

查看 pyecharts 版本

import pyecharts
print('pyecharts版本:', pyecharts.__version__)

pyecharts版本: 2.0.8

快速上手

首先开始来绘制你的第一个图表

jupyter 环境 使用一下代码

from pyecharts.globals import CurrentConfig, NotebookType

# 对于 Jupyter Notebook
# CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_NOTEBOOK

# 对于 Jupyter Lab
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
from pyecharts.charts import Bar

bar = Bar()

#  模拟 x 轴数据
bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])

# 模拟 x 轴数据
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
# render 会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件
# 也可以传入路径参数,如 bar.render("mycharts.html")
# bar.render()

# 需要在在第一次渲染时加载 javascript 文件
bar.load_javascript()

# 渲染图形
bar.render_notebook()

pyecharts 柱状图

# from IPython.display import HTML
# bar.render("temp.html")
# HTML(filename="temp.html")

pyecharts 所有方法均支持链式调用。

from pyecharts.charts import Bar

bar = (
    Bar()
    .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
    .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
)

# 渲染图形
bar.render_notebook()

pyecharts 柱状图

使用 options 配置项,在 pyecharts 中,一切皆 Options。

from pyecharts.charts import Bar
from pyecharts import options as opts

# V1 版本开始支持链式调用
# 你所看到的格式其实是 `black` 格式化以后的效果
# 可以执行 `pip install black` 下载使用
bar = (
    Bar()
    .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
    .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
    .set_global_opts(title_opts=opts.TitleOpts(title="主标题", subtitle="副标题"))
    # 或者直接使用字典参数
    # .set_global_opts(title_opts={"text": "主标题", "subtext": "副标题"})
)
bar.render_notebook()

pyecharts 柱状图

不习惯链式调用的开发者依旧可以单独调用方法

bar = Bar()
bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
bar.set_global_opts(title_opts=opts.TitleOpts(title="主标题", subtitle="副标题"))
bar.render_notebook()

pyecharts 柱状图

使用主题

pyecharts 提供了 10+ 种内置主题,开发者也可以定制自己喜欢的主题,进阶话题-定制主题 有相关介绍。

from pyecharts.charts import Bar
from pyecharts import options as opts
# 内置主题类型可查看 pyecharts.globals.ThemeType
from pyecharts.globals import ThemeType

bar = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
    .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
    .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
    .add_yaxis("商家B", [15, 6, 45, 20, 35, 66])
    .set_global_opts(title_opts=opts.TitleOpts(title="主标题", subtitle="副标题"))
)

bar.render_notebook()

pyecharts 主题

from pyecharts.charts import Bar
from pyecharts import options as opts
# 内置主题类型可查看 pyecharts.globals.ThemeType
from pyecharts.globals import ThemeType

bar = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
    .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
    .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
    .add_yaxis("商家B", [15, 6, 45, 20, 35, 66])
    .set_global_opts(title_opts=opts.TitleOpts(title="主标题", subtitle="副标题"))
)

bar.render_notebook()

pyecharts 主题

常用图形

pyecharts 是一个强大的 Python 可视化库,它支持绘制多种类型的图表,以下是一些常见的图表类型:

  1. 折线图(Line Chart)

    用于展示数据随时间或其他连续变量的变化趋势。比如股票价格随时间的波动、气温随日期的变化等。

  2. 饼图(Pie Chart)

    主要用于展示各部分数据在总体中所占的比例关系。例如不同产品的销售额占总销售额的比例。

  3. 散点图(Scatter Chart)

    可用于展示两个变量之间的关系,通过点的分布来呈现数据的相关性。像研究身高和体重之间的关系。

  4. 雷达图(Radar Chart)

    适合用于展示多个变量的综合表现,常用于评估多个指标的情况,如对不同学生的多门课程成绩进行综合评估。

  5. 箱线图(Boxplot Chart)

    用于显示一组数据的分布情况,包括最小值、第一四分位数、中位数、第三四分位数和最大值,能直观地反映数据的离散程度和异常值。

  6. 热力图(Heatmap Chart)

    通过颜色的深浅来表示数据的大小,常用于展示二维数据的分布,如不同地区不同时间段的温度分布。

  7. 地图(Map)

    可以展示地理数据,如不同地区的人口数量、GDP 等。pyecharts 支持多种地图类型,包括世界地图、中国地图以及各省份地图等。

  8. 树状图(Tree Chart)

    用于展示层级结构的数据,如公司的组织架构、文件系统的目录结构等。

  9. 旭日图(Sunburst Chart)

    也是用于展示层级数据的图表,以同心圆环的形式呈现数据的层次关系,相较于树状图,它更强调各部分的占比关系。

  10. 词云图(WordCloud)

    用于展示文本数据中词语的频率,词语的大小代表其出现的频率,常用于分析文本内容的关键词。

1. 折线图(Line Chart)

用于展示数据随时间或其他连续变量的变化趋势。比如股票价格随时间的波动、气温随日期的变化等。

from pyecharts.charts import Line
from pyecharts import options as opts

# 模拟数据
x_data = ["1月", "2月", "3月", "4月", "5月", "6月"]
y_data = [100, 120, 150, 130, 160, 180]

# 创建折线图对象
line = Line()
line.add_xaxis(x_data)
line.add_yaxis("销售额", y_data)

# 设置全局配置
line.set_global_opts(
    title_opts=opts.TitleOpts(title="上半年销售额折线图"),
    toolbox_opts=opts.ToolboxOpts(is_show=True)
)

# 渲染并保存
# line.render("line_chart.html")
line.render_notebook()

pyecharts 折线图

2. 饼图(Pie Chart)

主要用于展示各部分数据在总体中所占的比例关系。例如不同产品的销售额占总销售额的比例。

from pyecharts.charts import Pie
from pyecharts import options as opts

# 模拟数据
data = [("苹果", 30), ("香蕉", 25), ("橙子", 20), ("葡萄", 15), ("草莓", 10)]

# 创建饼图对象
pie = Pie()
pie.add("", data)

# 设置全局配置
pie.set_global_opts(
    title_opts=opts.TitleOpts(title="水果销售占比饼图"),
    toolbox_opts=opts.ToolboxOpts(is_show=True)
)

# 设置系列配置
pie.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%"))

# 渲染并保存
pie.render("pie_chart.html")
pie.render_notebook()

pyecharts 饼图

3. 散点图(Scatter Chart)

可用于展示两个变量之间的关系,通过点的分布来呈现数据的相关性。像研究身高和体重之间的关系。

from pyecharts.charts import Scatter
from pyecharts import options as opts
import random

# 模拟数据
x_data = [random.randint(1, 100) for _ in range(50)]
y_data = [random.randint(1, 100) for _ in range(50)]

# 创建散点图对象
scatter = Scatter()
scatter.add_xaxis(x_data)
scatter.add_yaxis("数据点", y_data)

# 设置全局配置
scatter.set_global_opts(
    title_opts=opts.TitleOpts(title="随机数据散点图"),
    toolbox_opts=opts.ToolboxOpts(is_show=True)
)

# 渲染并保存
scatter.render("scatter_chart.html")
scatter.render_notebook()

pyecharts 散点图

4. 雷达图(Radar Chart)

适合用于展示多个变量的综合表现,常用于评估多个指标的情况,如对不同学生的多门课程成绩进行综合评估。

from pyecharts.charts import Radar
from pyecharts import options as opts

# 模拟数据
v1 = [[4300, 10000, 28000, 35000, 50000, 19000]]
v2 = [[9000, 14000, 28000, 31000, 42000, 21000]]
c_schema = [
    {"name": "销售", "max": 60000},
    {"name": "管理", "max": 16000},
    {"name": "信息技术", "max": 30000},
    {"name": "客服", "max": 38000},
    {"name": "研发", "max": 52000},
    {"name": "市场", "max": 25000},
]

# 创建雷达图对象
radar = Radar()
radar.add_schema(schema=c_schema)

# 添加数据并设置颜色和标签
radar.add("预算分配", v1, color="#FF6060", label_opts=opts.LabelOpts(is_show=True))
radar.add("实际开销", v2, color="#6060FF", label_opts=opts.LabelOpts(is_show=True))

# 设置全局配置
radar.set_global_opts(
    title_opts=opts.TitleOpts(title="预算与实际开销雷达图"),
    toolbox_opts=opts.ToolboxOpts(is_show=True)
)

# 渲染并保存
radar.render("radar_chart.html")
radar.render_notebook()

pyecharts 雷达图

5. 箱线图(Boxplot Chart)

用于显示一组数据的分布情况,包括最小值、第一四分位数、中位数、第三四分位数和最大值,能直观地反映数据的离散程度和异常值。

from pyecharts.charts import Boxplot
from pyecharts import options as opts

# 模拟数据
v1 = [
    [850, 740, 900, 1070, 930, 850, 950, 980, 980, 880, 1000, 980],
    [960, 940, 960, 940, 880, 800, 850, 880, 900, 840, 830, 790],
]

# 创建箱线图对象
boxplot = Boxplot()
boxplot.add_xaxis(["expr1", "expr2"])
boxplot.add_yaxis("", boxplot.prepare_data(v1))

# 设置全局配置
boxplot.set_global_opts(
    title_opts=opts.TitleOpts(title="数据分布箱线图"),
    toolbox_opts=opts.ToolboxOpts(is_show=True)
)

# 渲染并保存
boxplot.render("boxplot_chart.html")
boxplot.render_notebook()   

pyecharts 箱线图

6. 热力图(Heatmap Chart)

通过颜色的深浅来表示数据的大小,常用于展示二维数据的分布,如不同地区不同时间段的温度分布。

from pyecharts.charts import HeatMap
from pyecharts import options as opts

# 模拟数据
data = [
    [i, j, random.randint(0, 50)] for i in range(24) for j in range(7)
]

# 创建热力图对象
heatmap = HeatMap()
heatmap.add_xaxis([str(i) for i in range(24)])
heatmap.add_yaxis("星期", ["周一", "周二", "周三", "周四", "周五", "周六", "周日"], data)

# 设置全局配置
heatmap.set_global_opts(
    title_opts=opts.TitleOpts(title="一周 24 小时热度分布热力图"),
    visualmap_opts=opts.VisualMapOpts(max_=50),
    toolbox_opts=opts.ToolboxOpts(is_show=True)
)

# 渲染并保存
heatmap.render("heatmap_chart.html")
heatmap.render_notebook()    

![pyecharts 热力图

7. 地图(Map)

可以展示地理数据,如不同地区的人口数量、GDP 等。pyecharts 支持多种地图类型,包括世界地图、中国地图以及各省份地图等。

from pyecharts.charts import Map
from pyecharts import options as opts

# 模拟数据
data = [("广东", 95), ("北京", 80), ("上海", 75), ("江苏", 70), ("浙江", 65)]

# 创建地图对象
map_chart = Map()
map_chart.add("省份数据", data, "china")

# 设置全局配置
map_chart.set_global_opts(
    title_opts=opts.TitleOpts(title="中国部分省份数据分布地图"),
    visualmap_opts=opts.VisualMapOpts(max_=100),
    toolbox_opts=opts.ToolboxOpts(is_show=True)
)

# 渲染并保存
map_chart.render("map_chart.html")
map_chart.render_notebook()

pyecharts

8. 树状图(Tree Chart)

用于展示层级结构的数据,如公司的组织架构、文件系统的目录结构等。

from pyecharts.charts import Tree
from pyecharts import options as opts

# 模拟数据
data = [
    {
        "children": [
            {"name": "二级节点1"},
            {"name": "二级节点2"}
        ],
        "name": "根节点"
    }
]

# 创建树状图对象
tree = Tree()
tree.add("", data)

# 设置全局配置
tree.set_global_opts(
    title_opts=opts.TitleOpts(title="简单树状图"),
    toolbox_opts=opts.ToolboxOpts(is_show=True)
)

# 渲染并保存
tree.render("tree_chart.html")
tree.render_notebook()    

pyecharts 树状图

9. 旭日图(Sunburst Chart)

也是用于展示层级数据的图表,以同心圆环的形式呈现数据的层次关系,相较于树状图,它更强调各部分的占比关系。

from pyecharts.charts import Sunburst
from pyecharts import options as opts

# 模拟数据
data = [
    {
        "name": "Grandpa",
        "children": [
            {
                "name": "Uncle Leo",
                "value": 15,
                "children": [
                    {"name": "Cousin Jack", "value": 2},
                    {
                        "name": "Cousin Mary",
                        "value": 5,
                        "children": [{"name": "Jackson", "value": 2}]
                    },
                    {"name": "Cousin Ben", "value": 4}
                ]
            },
            {
                "name": "Father",
                "value": 10,
                "children": [
                    {"name": "Me", "value": 5},
                    {"name": "Brother Peter", "value": 1}
                ]
            }
        ]
    }
]

# 创建旭日图对象
sunburst = Sunburst()
sunburst.add(series_name="", data_pair=data)

# 设置全局配置
sunburst.set_global_opts(
    title_opts=opts.TitleOpts(title="家族关系旭日图"),
    toolbox_opts=opts.ToolboxOpts(is_show=True)
)

# 设置系列配置
sunburst.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}"))

# 渲染并保存
sunburst.render("sunburst_chart.html")
sunburst.render_notebook()

pyecharts 旭日图

10. 词云图(WordCloud)

用于展示文本数据中词语的频率,词语的大小代表其出现的频率,常用于分析文本内容的关键词。

pip 方式安装 词云图(WordCloud)

pip install wordcloud
from pyecharts.charts import WordCloud
from pyecharts import options as opts

# 模拟数据
words = [
    ("Python", 100),
    ("Java", 80),
    ("C++", 60),
    ("JavaScript", 50),
    ("Go", 40),
    ("Ruby", 30)
]

# 创建词云图对象
wordcloud = WordCloud()
wordcloud.add("编程语言词云图", words)

# 设置全局配置
wordcloud.set_global_opts(
    title_opts=opts.TitleOpts(title="编程语言词云图"),
    toolbox_opts=opts.ToolboxOpts(is_show=True)
)

# 渲染并保存
wordcloud.render("wordcloud_chart.html")
wordcloud.render_notebook()

pyecharts 词云图

http://www.dtcms.com/a/122960.html

相关文章:

  • Mysql索引(二)
  • 8.第二阶段x64游戏实战-string类
  • UE学习记录part15
  • ffpyplayer+Qt,制作一个视频播放器
  • 玩转Docker | 使用Docker安装FileDrop文件共享工具
  • 如何解【决泛型作为运行时参数】时类型擦除问题
  • PowerBI数据建模2:计算选项、计算组
  • JavaScript实用API
  • 计算机视觉4——特征点及其描述子
  • LeetCode344反转字符串
  • 亮相2025全球分布式云大会,火山引擎边缘云落地AI新场景
  • 1. 两数之和 leetcode
  • 后缀自动机SAM练习笔记 (一)
  • Pandas-按索引从df中读取指定一个或者多个元素
  • Pytorch Dataset问题解决:数据集读取报错DatasetGenerationError或OSError
  • win10离线环境下配置wsl2和vscode远程开发环境
  • spark-Core
  • 基于vue3与supabase系统认证机制
  • 大模型分布式推理和量化部署
  • 高可用之战:Redis Sentinal(哨兵模式)
  • Docker基础2
  • 【教程】Windows 电脑部署使用 config2spec 详细教程
  • 基于ueditor编辑器的功能开发之给编辑器图片增加水印功能
  • 智能防灾网:气象灾害风险管理系统的科技力量与未来蓝图
  • Mybatis的springboot项目使用
  • 【leetcode hot 100 198】打家劫舍
  • 【力扣hot100题】(074)前 K 个高频元素
  • Nginx之https重定向为http
  • 【DvAdmin】接口返回 emoji 显示 ?解决方法
  • ArkTS语言入门之接口、泛型、空安全、特殊运算符等