从Power BI Desktop发布到Power BI Service后柱状图颜色变更问题求助
解决Power BI簇状柱形图颜色不一致问题
问题背景
该颜色不一致Bug已存在一段时间,目前考虑使用Deneb构建图表并硬编码颜色规避问题,现寻求其他解决方案,同时确认是否可通过DAX为簇状柱形图硬编码颜色。
图表显示对比
- Power BI Desktop:

- Power BI Service:

当前使用的主题文件
{ "name": "whaleTheme", "dataColors": [ "#00437B", "#F37021", "#FDB515", "#789904", "#C4D4A4", "#6DB6F4", "#FDDD15", "#FAC9AC", "#3599B8", "#DFBFBF", "#4AC5BB", "#5F6B6D", "#FB8281", "#F4D25A", "#7F898A", "#A4DDEE", "#FDAB89", "#B687AC", "#28738A", "#A78F8F", "#168980", "#293537", "#BB4A4A", "#B59525", "#475052", "#6A9FB0", "#BD7150", "#7B4F71", "#1B4D5C", "#706060", "#0F5C55", "#1C2325" ], "visualStyles": { "*": { "*": { "*": [ { "fontFamily": "Arial", "color": { "solid": {} } } ] } }, "barChart": { "*": {} }, "clusteredBarChart": { "*": {} }, "clusteredColumnChart": { "*": {} }, "columnChart": { "*": {} }, "hundredPercentStackedBarChart": { "*": {} }, "hundredPercentStackedColumnChart": { "*": {} }, "lineStackedColumnComboChart": { "*": {} }, "lineClusteredColumnComboChart": { "*": {} }, "scatterChart": { "*": {} }, "pivotTable": { "*": { "total": [ { "fontFamily": "Arial" } ] } }, "ribbonChart": { "*": {} }, "areaChart": { "*": {} }, "lineChart": { "*": {} }, "stackedAreaChart": { "*": {} }, "waterfallChart": { "*": {} }, "tableEx": { "*": {} }, "slicer": { "*": {} }, "filterSlicer": { "*": {} }, "multiRowCard": { "*": {} } }, "textClasses": { "label": { "fontFace": "'Segoe UI', wf_segoe-ui_normal, helvetica, arial, sans-serif" }, "callout": { "fontFace": "'Segoe UI', wf_segoe-ui_normal, helvetica, arial, sans-serif" }, "title": { "fontFace": "'Segoe UI', wf_segoe-ui_normal, helvetica, arial, sans-serif" }, "header": { "fontFace": "'Segoe UI', wf_segoe-ui_normal, helvetica, arial, sans-serif" } } }
可行解决方案
1. DAX硬编码颜色(适配簇状柱形图)
通过创建DAX计算列绑定固定颜色,实现颜色一致性:
- 假设类别列为
[Category],新建计算列:
类别颜色 = SWITCH( TRUE(), [Category] = "类别1", "#00437B", [Category] = "类别2", "#F37021", [Category] = "类别3", "#FDB515", // 按需补充所有类别与对应主题颜色 "#5F6B6D" // 默认兜底颜色 )
- 配置图表:选中簇状柱形图的数据系列,进入格式面板 → 数据颜色 → 启用条件格式,选择字段值并关联新建的
[类别颜色]列。
2. 优化主题文件颜色映射
当前主题中clusteredColumnChart配置为空,可添加明确的类别-颜色映射规则,确保Desktop与Service渲染逻辑一致:
"clusteredColumnChart": { "*": { "dataColors": [ { "assignBy": "category", "colorMapping": { "类别1": "#00437B", "类别2": "#F37021", "类别3": "#FDB515" // 按主题dataColors列表补充全部分类映射 } } ] } }
将上述代码替换原主题中clusteredColumnChart的空对象,重新导入主题即可生效。
3. Deneb自定义图表(已考虑方案)
通过Vega-Lite语法直接硬编码颜色,完全控制渲染逻辑:
"mark": {"type": "bar"}, "encoding": { "color": { "field": "Category", "scale": { "domain": ["类别1", "类别2", "类别3"], "range": ["#00437B", "#F37021", "#FDB515"] } } }
这种方式彻底规避Power BI内置视觉对象的颜色匹配Bug,适合复杂自定义场景。
内容的提问来源于stack exchange,提问作者zach
相关产品推荐
相关产品推荐

