我正在创建图表饼图、条形图和线图,并希望设置它们的图例以及值a,图例标题并将值指向图表上。 我该怎么做?
通常您不需要添加Legend
,因为已经有一个默认的。但是,由于您正在代码中创建Chart
,因此您确实必须编写更多代码。添加Legend
就是其中之一。
您已经创建了一个legend
但不是添加它,而是仍然创建了另一个图例。而是写:chartA.Legends.Add(legend)
请注意,带有字符串参数的构造函数上的文档(包括智能感知)是错误的!它按预期工作,而不是 MSDN 上记录的!
我建议的(chartA.Legends[0].Title = "someString";
)工作正常,前提是您已经完成了所需的所有其他事情:
您还必须创建(至少)
- 一个
ChartArea
- 一个
Series
以及您想要的ChartType
。 - ..为了显示它,您还必须添加一个
DataPoint
.
例:
Legend legend = new Legend();
Chart chartA = new Chart(); // <<---!
chartA.BackColor = Color.White;
chartA.Width = 370;
chartA.Height = 250;
chartA.Location = new Point(48, 35);
chartA.Name = textBox1.Text;
chartA.Legends.Add(legend); // <<---!
legend.Title = "Age of The Employees"; // <<---!
chartA.ChartAreas.Add(new ChartArea("ca")); // <<---!
chartA.ChartAreas["ca"].BackColor = Color.LightSeaGreen;
Series s1 = chartA.Series.Add("s1"); // <<---!
s1.ChartType = SeriesChartType.Pie;
s1.Points.AddY(12);
s1.Points.AddY(32);
..
第一个Legend
将自动填充每个Series
一个LegendItem
或(如果您有Pie
图表)每DataPoint
一个项目
顺便说一句:你可能有额外的Legends
但你必须照顾好它们的内容和它们的位置/对接。
更新:如果你愿意,你可以控制传奇的Font
和TitleFont
;它以通常的方式工作,即通过创建一个新的Font
,要么从头开始,要么从Font
的FontFamily
:
legend.Font = new Font("Consolas", 10f);
legend.TitleFont = new Font(legend.Font.FontFamily, 14f);
您可能希望在标题中插入换行符(n
),如果它太长而无法放入垂直图例中。