#c# #.net #asp.net-mvc-3 #mschart
#c# #.net #asp.net-mvc-3 #mschart
Вопрос:
Есть ли какой-либо способ отобразить условные обозначения на диаграмме с помощью помощника диаграммы?
Он не отображает его по умолчанию, нет свойства, которое я мог бы указать для отображения, и если я укажу условные обозначения в xml :
<Legends>
<Legend _Template_=""All"" BackColor=""Black"" Docking=""Bottom"" Font=""Trebuchet MS, 8.25pt, style=Bold"" LegendStyle=""Row"" >
</Legend>
</Legends>
Это также не работает.
В помощнике по диаграммам есть метод public Chart AddLegend(string title = null, string name = null)
; но когда я вызываю его, я не вижу легенды на своей диаграмме, диаграмма также не отображается.
Chart chart = new System.Web.Helpers.Chart(width: 120, height: 300, theme: chartStyle: ChartTheme.Green.ToString())
.AddLegend("title", "name") // not existed legends, that's why error.
.AddSeries(
chartType: "Column"
legend: "Rainfall"
xValue: new[] { "jan", "feb", "mar", "apr", "may" },
yValues: new[] { "20", "20", "40", "10", "10" });
. Ошибка при получении: Series 'Series1' uses non-existing legend name 'Rainfall'. Set Legend property value to Default
Если я изменю legend: "Rainfall"
на legend: "Default"
, то получу ту же ошибку.
Как я мог бы сделать так, чтобы это название легенды существовало? Например, в случае использования System.Web.UI.DataVisualization.Charting
напрямую это будет выглядеть следующим образом:
chart.Legends.Add("Legend1");
// show legend based on check box value
chart.Legends["Legend1"].Enabled = true;
Но как добиться того же с помощью помощника?
Ответ №1:
Вам нужно присвоить каждой серии имя, затем вызвать AddLegend() без параметров, чтобы добавить условные обозначения.
var chart = new Chart(width: 600, height: 250)
.AddSeries(
chartType: "column",
xValue: new [] { 2010, 2011, 2012 },
yValues: new[] { 100, 125, 150 },
name: "Forecasts")
.AddSeries(
chartType: "column",
xValue: new[] { 2010, 2011, 2012 },
yValues: new[] { 200, 225, 250 },
name: "Actuals")
.AddLegend();