У меня есть таблица данных, которую я хочу показать на круговой диаграмме. Amount
будут значениями, а MsgType
— метками. На диаграмме должно быть 3 среза. Таблица выглядит так:
MsgType Amount
-----------------
3 4500
2 1262
1 3956
Я выполнил несколько примеров, чтобы создать новую серию круговых диаграмм и показать ее в своем приложении. Код программной части выглядит следующим образом:
public SeriesCollection MsgTypeDoughnut { get; set; }
public List<int> Lables { get; set; }
public MsgTypeProportion()
{
InitializeComponent();
List<DataMsgType> dataMsgTypes = GetMsgType();
ChartValues<int> values = new ChartValues<int>();
Lables = new List<int>();
foreach (var item in dataMsgTypes)
{
values.Add(item.Amount);
Lables.Add(item.MsgType);
}
MsgTypeDoughnut = new SeriesCollection
{
new PieSeries
{
Title = "Amount",
Values = values,
DataLabels = true
}
};
DataContext = this;
}
public List<DataMsgType> GetMsgType()
{
DataSet DS = new DataSet();
DataSetTableAdapters.spMessages_GetMsgTypeOverviewTableAdapter MsgTypeta = new DataSetTableAdapters.spMessages_GetMsgTypeOverviewTableAdapter();
MsgTypeta.Fill(DS.spMessages_GetMsgTypeOverview);
List<DataMsgType> dataMsgTypes = new List<DataMsgType>();
foreach (DataRow row in DS.Tables["spMessages_GetMsgTypeOverview"].Rows)
{
dataMsgTypes.Add(new DataMsgType() { MsgType = (int)row["MsgType"], Amount = (int)row["Amount"]});
}
return dataMsgTypes;
}
Но это создает 3 новых круговых диаграммы, а не 3 фрагмента в 1 круговой диаграмме. Я нашел этот вопрос how-to-create-a-pie-chart -with-livecharts, и решение состоит в том, чтобы иметь несколько PieSeries
, но я не могу понять, как это сделать, используя строки из моей таблицы.