启用时更改图表系列颜色,具体取决于系列[索引]

马库斯

只是一个快速的。我有一个图形,可以显示9个不同的序列,数据是通过用户的文本框输入的,并填充了这些序列。

该图链接到一个checkedlistbox,并且列表框中被选中的项目在图表上启用了它们各自的系列。一次只能启用2个系列,使用下面的代码可以正常工作:

    private void chListBoxChartSeries_ItemCheck(object sender, ItemCheckEventArgs e)
    {
        if (e.NewValue == CheckState.Checked && chListBoxChartSeries.CheckedItems.Count >= 2)
        {
            e.NewValue = CheckState.Unchecked;
        }
    }

    public void saveChartSeries()
    {
        //placeholder variable to relate between checklist item and chart series
        string seriesName;

        for (int index = 0; index < chListBoxChartSeries.Items.Count; ++index)
        {
            seriesName = chListBoxChartSeries.Items[index].ToString();
            if (chListBoxChartSeries.CheckedItems.Contains(chListBoxChartSeries.Items[index]))
            {
                main.chartVitals.Series[seriesName].Enabled = true;
            }
            else
            {
                main.chartVitals.Series[seriesName].Enabled = false;
            }
        }
    }

接下来,我确实想做一件事,我希望将每个系列都设置为每种颜色(例如,第一系列为红色,第二系列为蓝色)。我正在努力寻找一种有效的方法来完成此操作,但我想它涉及将两个索引中的第一个设置为一种颜色(红色),而第二个设置为另一种颜色(蓝色)。我想我可以使用saveChartSeries()函数中现有的for循环来完成此操作,如下所示:

    public void saveChartSeries()
    {
        //placeholder variable to relate between checklist item and chart series
        string seriesName;

        for (int index = 0; index < chListBoxChartSeries.Items.Count; ++index)
        {
            seriesName = chListBoxChartSeries.Items[index].ToString();
            if (chListBoxChartSeries.CheckedItems.Contains(chListBoxChartSeries.Items[index]))
            {
                main.chartVitals.Series[seriesName].Enabled = true;
                if (main.chartVitals.Series[seriesName].Enabled == true)
                {
                    //set series color to Color.Red
                    //if there is already a red series, set to Color.Blue
                }
            }
            else
            {
                main.chartVitals.Series[seriesName].Enabled = false;
            }
        }
    }

如果有人可以提供进一步的建议,或者如果我过于繁琐,并且有一个更简单的方法,那么这就是我到目前为止所能做的事情,我真的很感谢有人指出这一点!

战车

如果我对您的理解正确,则希望使用固定列表中的颜色为每个可见系列着色。

每当您启用或禁用上一个系列时,都会涉及更改后续系列的颜色,对吗?

这是一个可以做到的功能:

void colorSeries(Chart chart)
{
    List<Color> seriescolors = new List<Color> 
       { Color.Khaki, Color.Brown, Color.CornflowerBlue,
         Color.DarkCyan, Color.ForestGreen, Color.Gold, Color.HotPink, Color.Indigo};

    int co = 0;
    foreach (Series s in chart.Series)
        if (s.Enabled) s.Color = seriescolors[co++];
}

每次启用或禁用系列时都将调用它。

您还写道:如果我过于复杂,并且认为可以使用现有的for循环进行此操作唔。在我看来,您既要使其复杂化,又要设定完全错误的优先级。

不要试图将某些东西放入“现有循环”中;相反,要保持简单,并在处理完用户操作之后调用一个函数来处理显示颜色。

尝试“分离关注点”,并始终致力于创建小的自给自足的例程!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何更改图表系列颜色

来自分类Dev

更改图表颜色取决于单元格值

来自分类Dev

更改图表底部的系列颜色指示器

来自分类Dev

如何在Dojo中更改图表系列的线条颜色?

来自分类Dev

动态更改图表系列 VBA

来自分类Dev

更改饼图标题取决于可见系列

来自分类Dev

通过向下钻取系列更改图表类型

来自分类Dev

WPF图表控件更改图例中的“系列”标题

来自分类Dev

Highcharts隐藏系列,不更改图例颜色

来自分类Dev

Excel 2013-创建具有栏宽的2数据系列图表是动态的(取决于变量)

来自分类Dev

KendoUI将“甜甜圈”图表的系列标签颜色更改为系列颜色

来自分类Dev

在多个图表中更改系列onclick事件的颜色

来自分类Dev

如何更改HighChart图表中的系列图例文本颜色?

来自分类Dev

如何更改Asp.net图表控件系列颜色?

来自分类Dev

在Excel xyscatter图表中更改数据系列的颜色

来自分类Dev

在多个图表中更改系列onclick事件的颜色

来自分类Dev

如何使用EPPLus修改图表系列?

来自分类Dev

如何设置图表系列颜色

来自分类Dev

更改Highcharts系列颜色

来自分类Dev

jQuery更改TR背景颜色,具体取决于当前选择的文本输入

来自分类Dev

在 C# Winforms 中使用 MouseEvents 更改图表系列外观

来自分类Dev

启用\禁用命令按钮,具体取决于URL参数

来自分类Dev

更改图像的动画速度系列

来自分类Dev

更改TD颜色取决于状态

来自分类Dev

根据ColorPicker输入更改图表颜色

来自分类Dev

更改图表d3的颜色

来自分类Dev

kibana 4如何更改图表的颜色?

来自分类Dev

更改图表控件的轴颜色?

来自分类Dev

更改图表边框区域的颜色

Related 相关文章

热门标签

归档