You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否使用Plotly绘制CIE标准色度图?

在Plotly中实现CIE1931色度图

实现思路

绕过依赖matplotlib的color.plotting.plot_chromaticity_diagram_CIE1931,直接基于CIE1931标准的色度坐标数据,用Plotly的散点图+填充路径功能复刻该图表,适配Dash+Plotly技术栈。

具体步骤

  1. 获取CIE1931边界坐标
    从公开的CIE标准数据集或color库源码中提取色度图边界的(x,y)坐标(完整坐标可参考CIE官方文档或color库的实现逻辑)。

  2. Plotly绘制填充色域
    使用plotly.graph_objects创建图表,通过Scatter组件绘制边界并填充区域,配置坐标轴和样式。

示例代码

import plotly.graph_objects as go
import numpy as np

# CIE1931色度图完整边界坐标(可从CIE官方或color库源码获取完整数据)
cie_1931_boundary = np.array([
    [0.1738, 0.0049], [0.1756, 0.0056], [0.1772, 0.0063],
    [0.1788, 0.0071], [0.1803, 0.0079], [0.1817, 0.0087],
    [0.1831, 0.0096], [0.1844, 0.0105], [0.1857, 0.0114],
    [0.1869, 0.0123], [0.1881, 0.0132], [0.1893, 0.0141],
    # 省略中间大量坐标,完整数据需补充
    [0.1664, 0.0039], [0.1689, 0.0043], [0.1716, 0.0047]
])

# 创建Figure实例
fig = go.Figure()

# 添加色域填充区域
fig.add_trace(go.Scatter(
    x=cie_1931_boundary[:, 0],
    y=cie_1931_boundary[:, 1],
    fill='toself',
    fillcolor='rgba(255, 230, 100, 0.4)',
    line=dict(color='black', width=1),
    name='CIE1931可显色域'
))

# 配置图表样式
fig.update_layout(
    title='CIE1931色度图',
    xaxis_title='x 色度坐标',
    yaxis_title='y 色度坐标',
    xaxis=dict(range=[0, 0.8]),
    yaxis=dict(range=[0, 0.9]),
    showlegend=False,
    template='plotly_white'
)

# Dash应用中直接传入dcc.Graph组件
# from dash import Dash, dcc, html
# app = Dash(__name__)
# app.layout = html.Div([dcc.Graph(figure=fig)])
# app.run_server(debug=True)

fig.show()

优化扩展

  • 渐变填充:可通过色空间转换(CIE xyY → RGB),为色域区域添加对应颜色的渐变填充,提升图表准确性。
  • 数据完整性:若需要高精度图表,需补充完整的CIE1931边界坐标,可直接从color库的plot_chromaticity_diagram_CIE1931方法源码中提取。

内容的提问来源于stack exchange,提问作者Олег Алексеев

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 21:22:11