c# - 获取图表/表格的下一种颜色?

标签 c# .net winforms

<分区>

我有一些表格/图表。我为他们添加系列。每个系列都用一种颜色标识。

我正在寻找如何为我添加到我的系列中的系列选择最佳颜色。

我们的目标是根据已经使用的颜色获得下一个最好的颜色。因为我可以添加/删除系列,所以我不能只拥有一组颜色并选择列表中的下一个。

我听说有一些 MS 指南(只找到了 excel 的等价物)

有什么想法/链接/方法可以做到这一点吗?

编辑:发现this提供有关颜色对比度的有趣信息

编辑2: 我尝试使用“Color Hue wheel”:我只将轮子除以我需要的颜色数量,然后在位置开始处取颜色。如果我们想从不同的颜色开始,我还提供了一种放置一些偏移量的方法。

它有效,我有不同的颜色,但我觉得我们可以做得更好。例如。偏移量为 210°,6 种颜色,我有这些颜色: enter image description here 我认为这只是一种错觉,但最后两种颜色似乎比其他颜色更接近。问题是我必须处理用户的眼睛。

整个“色调”看起来像这样enter image description here 用眼睛,我们可以看到有些颜色看起来比其他颜色(如青色)更不同。对我来说,绿色似乎比黄色大,...

似乎它存在一个颜色的概念是perceptually linear colors ,你知道是否有一种算法可以让我得到一个感知线性颜色阵列?这样就很容易取到我需要的颜色了

最佳答案

看看How to automatically generate N "distinct" colors?但是……

这就是我遇到类似问题时所做的。

我创建了 32 种分布均匀且颜色各异的表格。我做过一次。当我必须展示超过 32 种颜色时,我只是重复颜色。我认为 32 个不同的系列对于我的数据集来说已经足够好了(我不知道在现实生活场景中实际上使用了超过 32 个系列)。

它的一个变体是当您超过引用表的大小时稍微改变颜色,使用向其添加 11111 的粗略变化。

我发现这是一种非常简单的方法,几乎​​没有出错的余地。

大多数(所有?)算法都采用所需颜色的数量并生成不同颜色列表,但在添加新颜色时会遇到更改现有系列颜色的问题,我发现这是用户通常期望的障碍X 系列是黑色的,Y 系列是黄色的等等,即使他们添加了一个新系列。

关于c# - 获取图表/表格的下一种颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17019003/

相关文章:

c# - 正则表达式忽略大括号

c# - .net dll 是否有像 c++ dll 中的 dll 那样的入口点

c# - 根据 c# 中的窗口大小调整框

c# - 内存泄漏和处置

c# - TextBox使用GDI还是GDI+

c# - 显示错误通知时禁用默认声音

C#:在运行时根据控件大小自动调整字体的函数?

c# - Microsoft Word 中的编号列表

c# - 使用 JSONPath 编辑 JSON

c# - 将表达式与运算符 && 组合