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

Pyecharts之特殊图表的独特展示

在数据可视化的世界里,除了常见的柱状图、折线图、饼图等,还有一些特殊的图表可以为我们带来独特的展示效果,帮助我们以更有趣、更直观的方式呈现数据。Pyecharts 为我们提供了多种特殊图表的绘制功能,本文将介绍象形图、水球图和日历图的定制方法,让你能够创建出与众不同的数据可视化作品。

一、象形图自定义图形

象形图是一种使用自定义图形来表示数据的图表,比普通的柱状图更加形象生动。下面是 pictorialbar_with_custom_symbol() 函数的示例代码,展示了如何创建象形图并自定义其图形:

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


def pictorialbar_with_custom_symbol():
    pictorialbar = PictorialBar()
    x_data = ['A', 'B', 'C', 'D', 'E']
    y_data = [50, 100, 150, 200, 250]
    pictorialbar.add_xaxis(x_data)
    # 使用自定义图形,这里使用 'circle' 作为示例
    pictorialbar.add_yaxis(
        "",
        y_data,
        symbol_size=20,
        symbol_repeat="fixed",
        symbol_offset=[0, 0],
        symbol='circle',  # 自定义图形为圆形
        label_opts=opts.LabelOpts(is_show=False)
    )
    pictorialbar.set_global_opts(
        title_opts=opts.TitleOpts(title="象形图自定义图形"),
        xaxis_opts=opts.AxisOpts(is_show=False),  # 隐藏 x 轴
        yaxis_opts=opts.AxisOpts(is_show=False)  # 隐藏 y 轴
    )
    return pictorialbar


chart = pictorialbar_with_custom_symbol()
chart.render_notebook()

代码解释

  • 首先,导入 PictorialBar 类和 options 模块。
  • 创建 PictorialBar 实例 pictorialbar
  • 定义 x_datay_data 作为数据。
  • 使用 add_xaxis 方法添加 x 轴数据。
  • add_yaxis 方法中,设置 symbol 参数为 circle,将图形自定义为圆形,同时设置 symbol_size 为 20,symbol_repeatfixed 表示图形的重复方式,symbol_offset[0, 0] 表示图形的偏移量。
  • 使用 set_global_opts 方法隐藏 x 轴和 y 轴,并设置图表标题。

通过上述代码,你可以看到一个使用自定义圆形作为图形的象形图,通过改变 symbol 参数的值,可以使用不同的形状,如 trianglerect 等,还可以使用自定义的 SVG 路径来表示更复杂的图形,使数据展示更加形象生动。

二、水球图自定义形状

水球图通常用于表示百分比数据,以直观的方式展示完成度或占比,并且可以自定义其形状。以下是 liquid_with_custom_shape() 函数的代码示例,展示如何自定义水球图的形状:

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


def liquid_with_custom_shape():
    liquid = Liquid()
    liquid.add(
        "",
        [0.6],  # 表示 60% 的数据
        shape='diamond',  # 自定义形状为菱形
        label_opts=opts.LabelOpts(
            font_size=50,
            position="inside"
        )
    )
    liquid.set_global_opts(
        title_opts=opts.TitleOpts(title="水球图自定义形状")
    )
    return liquid


chart = liquid_with_custom_shape()
chart.render_notebook()

代码解释

  • 导入 Liquid 类和 options 模块。
  • 创建 Liquid 实例 liquid
  • 使用 add 方法添加数据,这里是 [0.6] 表示 60% 的数据。
  • 设置 shape 参数为 diamond,将水球图的形状自定义为菱形。
  • 通过 label_opts 设置标签的字体大小和位置。

这种自定义形状的水球图在展示完成度、占比等数据时,可以根据不同的主题或需求,选择不同的形状,为数据展示带来更多的创意和趣味,让数据更加引人注目。

三、日历图定制

日历图可以按日期展示数据,适用于具有时间序列的数据展示,并且可以进行深度定制,包括定制单元格和显示中文标签。以下是 calendar_custom_cell()calendar_in_Chinese() 函数的示例代码:

from pyecharts.charts import Calendar
from pyecharts import options as opts
import datetime


def calendar_custom_cell():
    data = [
        [str(datetime.date(2024, i, j), random.randint(10, 100)]
        for i in range(1, 13)
        for j in range(1, 29)
    ]
    calendar = Calendar()
    calendar.add(
        "",
        data,
        calendar_opts=opts.CalendarOpts(
            range_=["2024-01-01", "2024-12-31"],
            daylabel_opts=opts.CalendarDayLabelOpts(name_map="en"),
            monthlabel_opts=opts.CalendarMonthLabelOpts(name_map="en")
        )
    )
    calendar.set_global_opts(
        title_opts=opts.TitleOpts(title="日历图定制"),
        visualmap_opts=opts.VisualMapOpts(
            max_=100,
            min_=10,
            orient="horizontal",
            pos_top="230px",
            pos_left="100px",
            is_piecewise=False
        )
    )
    return calendar


chart = calendar_custom_cell()
chart.render_notebook()

代码解释

  • 导入 Calendar 类、options 模块和 datetime 模块。
  • 生成一些随机数据 data,数据格式为 [(日期, 值)]
  • 创建 Calendar 实例 calendar
  • 使用 add 方法添加数据,并使用 calendar_opts 配置日历的范围、日标签和月标签。
  • 使用 set_global_opts 方法添加标题和视觉映射组件,用于表示数据的范围。

四、总结

通过使用上述特殊图表及其定制方法,我们可以突破传统图表的限制,为数据可视化带来更多的创意和独特性。在实际应用中,你可以根据数据的特点和展示需求,灵活选择合适的特殊图表,并对其进行深度定制,为用户带来更加丰富和吸引人的数据可视化体验。以上就是关于特殊图表的独特展示的内容,通过这些示例,你可以更加深入地理解如何使用 Pyecharts 创建出具有独特效果的可视化图表,并且学会根据实际情况定制这些图表,为你的数据讲述更精彩的故事。


http://www.kler.cn/a/518897.html

相关文章:

  • Linux 权限管理
  • 全连接神经网络(前馈神经网络)
  • PAT甲级-1023 Have Fun with Numbers
  • 项目练习:若依后台管理系统-后端服务开发步骤(springboot单节点版本)
  • Docker—搭建Harbor和阿里云私有仓库
  • NCCL的多种通信拓扑
  • fatal: unable to access ‘https://github
  • ### 2.5.3 二叉树的基本操作
  • 租赁管理系统如何优化商业资产管理与提升租赁效率探讨
  • 声明,这些内容和我无关
  • 【Axure 模版素材】Arco Design组件库 - AxureMost
  • 使用Java技术开发软件详细流程
  • Coze AI:全面解读及应用场景分析
  • 如何在data.table中处理缺失值
  • 用 HTML 实现新春烟花的详细笔记
  • Ansible介绍与入门学习
  • 「 机器人 」扑翼飞行器控制的当前挑战与后续潜在研究方向
  • C++ 复习总结记录九
  • 电脑无法开机,重装系统后没有驱动且驱动安装失败
  • docker 安装 nginx 详解
  • 【28】Word:石油化工设备技术❗
  • 【机器学习】穷理至极,观微知著:微积分的哲思之旅与算法之道
  • STM32 流水灯与跑马灯的实现
  • Apache Airflow 全面解析
  • 飞牛 fnOS 安装8852be网卡驱动并成功连接
  • CVE-2024-23897-Jenkins任意文件读取漏洞复现