python+echart绘制一个听力图

发布于:2025-05-01 ⋅ 阅读:(39) ⋅ 点赞:(0)

Python 中结合 ECharts 绘制听力图,可以使用 pyecharts 库。

听力图通常是一种展示声音频率和响度的图表,它可能包含多个维度的数据(如时间、频率和响度)。

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

# 假设这是听力测试数据
time = ["0秒", "1秒", "2秒", "3秒", "4秒", "5秒"]  # 时间轴
frequency_1k = [60, 70, 80, 90, 100, 110]  # 1kHz 频率下的响度
frequency_2k = [50, 60, 70, 80, 90, 100]   # 2kHz 频率下的响度
frequency_4k = [40, 50, 60, 70, 80, 90]    # 4kHz 频率下的响度

# 创建折线图对象
line = (
    Line()
    .add_xaxis(time)  # 添加时间轴
    .add_yaxis("1kHz", frequency_1k, label_opts=opts.LabelOpts(is_show=False))  # 添加1kHz数据
    .add_yaxis("2kHz", frequency_2k, label_opts=opts.LabelOpts(is_show=False))  # 添加2kHz数据
    .add_yaxis("4kHz", frequency_4k, label_opts=opts.LabelOpts(is_show=False))  # 添加4kHz数据
    .set_global_opts(
        title_opts=opts.TitleOpts(title="听力图"),  # 设置标题
        tooltip_opts=opts.TooltipOpts(trigger="axis"),  # 设置提示框
        toolbox_opts=opts.ToolboxOpts(is_show=True),  # 显示工具栏
        xaxis_opts=opts.AxisOpts(name="时间"),  # 设置X轴名称
        yaxis_opts=opts.AxisOpts(name="响度(dB)")  # 设置Y轴名称
    )
)

# 渲染图表到HTML文件
line.render("hearing_chart.html")

给出解释

  1. 数据准备

    • time 是时间轴,表示每个时间点。
    • frequency_1kfrequency_2kfrequency_4k 分别表示不同频率下的响度数据。
  2. 绘制图表

    • 使用 Line() 创建一个折线图对象。
    • 通过 .add_xaxis() 方法添加 X 轴数据(时间)。
    • 通过 .add_yaxis() 方法分别添加不同频率的响度数据,并设置是否显示标签。
    • 使用 .set_global_opts() 方法配置全局选项,包括标题、提示框、工具栏以及坐标轴名称。
  3. 渲染图表

    • 最后调用 .render() 方法将图表渲染为 HTML 文件,文件名为 hearing_chart.html,可以直接在浏览器中打开查看。

注意事项

  • 确保已安装 pyecharts 库。如果未安装,可以通过以下命令安装:
    pip install pyecharts
  • 如果需要更复杂的图表样式或功能,可以参考 pyecharts 的官方文档:https://pyecharts.org