我有很多图表我正在绘图,对于一些我需要给每个X值一个自定义颜色,并在图例中也有该项目。以下代码实现了这一点,但在图例中总是存在第一个默认值,现在是无意义的。如何删除/隐藏/清除原始默认图例项?仅供参考,chartColors数组只是一个循环的颜色数组。
mainChart.Legends.Add(new Legend("legend"));
mainChart.Legends["legend"].Docking = Docking.Bottom;
foreach (Series ser in mainChart.Series)
{
int i = 0;
foreach (DataPoint point in ser.Points)
{
point.Color = chartColors[i % chartColors.Count()];
mainChart.Legends["legend"].CustomItems.Add(point.Color,point.AxisLabel);
i++;
}
}
根据http://msdn.microsoft.com/en-us/library/vstudio/dd456659(v=vs.100).aspx
“此集合中的图例项目始终附加到图例中其他图例项目的末尾。”
所以为了澄清我的问题,如何删除“其他图例项目”
编辑:我找到了这个答案,但它适用于winforms,我不知道如何调用他们添加的功能
答案 0 :(得分:0)
好的,如果其他人需要这样做,我会发布帖子,我使用发布的问题中的awnser作为基础,但在调用方法之前添加了点,然后只删除了非自定义的
protected void chartarea1_CustomizeLegend(object sender,System.Web.UI.DataVisualization.Charting.CustomizeLegendEventArgs e)
{
int customItems = ((Chart)sender).Legends[0].CustomItems.Count();
if (customItems>0)
{
int numberOfAutoItems = e.LegendItems.Count()-customItems;
for (int i = 0; i < numberOfAutoItems; i++)
{
e.LegendItems.RemoveAt(0);
}
}
}
答案 1 :(得分:0)
为您的图表中的所有系列做下一步:
series .IsVisibleInLegend = false;
答案 2 :(得分:0)
mainChart.Series[0].IsVisibleInLegend = false;