从ZedGraph饼图中删除标签行

时间:2011-07-31 09:08:44

标签: c# zedgraph

我正在使用ZedGraph创建一个饼图,并使用AddPieSlice()方法向其添加项目,所有重载都需要label参数。我为此传递null,因为我不想要段的任何标签。然而,图表仍然从每个细分中抽出一条线,我认为它应该将它加入到它不存在的标签中。

有没有办法删除这些行?

提前致谢!

2 个答案:

答案 0 :(得分:6)

除了指定标签的任何值(包括null)之外,您还应该使用PieItem.LabelType = PieLabelType.None

例如:

GraphPane myPane = zedGraphControl1.GraphPane;

PieItem pieSlice1 = myPane.AddPieSlice(10, Color.Blue, 0F, "Label1");
PieItem pieSlice2 = myPane.AddPieSlice(15, Color.Orange, 0F, "Label2");
PieItem pieSlice3 = myPane.AddPieSlice(35, Color.Green, 0F, "Label3");
PieItem pieSlice4 = myPane.AddPieSlice(40, Color.DarkGray, 0F, "Label4");

// optional depending on whether you want labels within the graph legend
myPane.Legend.IsVisible = false;

pieSlice1.LabelType = PieLabelType.None;
pieSlice2.LabelType = PieLabelType.None;
pieSlice3.LabelType = PieLabelType.None;
pieSlice4.LabelType = PieLabelType.None;

zedGraphControl1.AxisChange();
zedGraphControl1.Invalidate();


highLine.Symbol.Type = SymbolType.Circle;
highLine.Symbol.Fill.IsVisible = false;
highLine.Symbol.Border.Width = 2F;
highLine.Symbol.Size = 16F;

zedGraphControl1.AxisChange();
zedGraphControl1.Invalidate();

以下是生成的饼图:

Pie chart with no labels

以下是一些ZedGraph引用:

答案 1 :(得分:1)

最近遇到了类似的问题。以下是我如何解决它:

GraphPane myPane = zedGraphControl1.GraphPane;

myPane.AddPieSlices(new double[] { 10, 25, 25, 40 }, new[] { "1", "2", "3", "4" });
myPane.Legend.IsVisible = false;
foreach (var x in myPane.CurveList.OfType<PieItem>())
    x.LabelType = PieLabelType.None; 

zedGraphControl1.AxisChange();
zedGraphControl1.Invalidate();

您可以在循环中方便地更改值。

抱歉我的英文