私は、同じ軸を共有する2つの円グラフを並べて作成しようとしています。誰もMSChartを使用してこれを達成するためのコードの例がありますか?私が達成したいもののC#MSChart - 同じ軸を共有する2つの円グラフをどのように作成できますか?
はここで、これまでに私のコードです:互いの上に以下のグラフで
Chart chart = new Chart();
chart.Width = 800;
string PreContractSeriesName = "PreContract";
string ContractSeriesName = "Contract";
//two chart areas
chart.ChartAreas.Add(PreContractSeriesName);
chart.ChartAreas.Add(ContractSeriesName);
//two pie charts, so two series
chart.Series.Add(PreContractSeriesName);
chart.Series.Add(ContractSeriesName);
//add series to chart area
chart.Series[PreContractSeriesName].ChartArea = PreContractSeriesName;
chart.Series[ContractSeriesName].ChartArea = ContractSeriesName;
//set as pie chart
chart.Series[PreContractSeriesName].ChartType = SeriesChartType.Pie;
chart.Series[ContractSeriesName].ChartType = SeriesChartType.Pie;
chart.ChartAreas[PreContractSeriesName].AlignmentOrientation = AreaAlignmentOrientations.Horizontal;
chart.ChartAreas[ContractSeriesName].AlignmentOrientation = AreaAlignmentOrientations.Horizontal;
chart.Series[PreContractSeriesName].Points.AddXY("source1", 100);
chart.Series[PreContractSeriesName].Points.AddXY("source2", 200);
chart.Series[PreContractSeriesName].Points.AddXY("source3", 300);
chart.Series[PreContractSeriesName].Points.AddXY("source4", 400);
chart.Series[PreContractSeriesName].Points.AddXY("source5", 500);
chart.Series[ContractSeriesName].Points.AddXY("source1", 140);
chart.Series[ContractSeriesName].Points.AddXY("source2", 240);
chart.Series[ContractSeriesName].Points.AddXY("source3", 340);
chart.Series[ContractSeriesName].Points.AddXY("source4", 440);
chart.Series[ContractSeriesName].Points.AddXY("source5", 540);
using (MemoryStream memStream = new MemoryStream())
{
chart.SaveImage(memStream, ChartImageFormat.Jpeg);
return File(memStream.ToArray(), "image/jpeg");
}
私のコードの結果:
私は知りたいです:
- グラフを並べるにはどうすればよいですか?
- これは、軸を共有する正しい方法ですか?
- 誰でもこれを達成する方法の例がありますか?
編集:ユーザーへ
ここである私の更新されたコードのおかげでTAW
Chart chart = new Chart();
chart.Width = 800;
string PreContractSeriesName = "PreContract";
string ContractSeriesName = "Contract";
//two chart areas
chart.ChartAreas.Add(PreContractSeriesName);
chart.ChartAreas.Add(ContractSeriesName);
//two pie charts, so two series
chart.Series.Add(PreContractSeriesName);
chart.Series.Add(ContractSeriesName);
//add series to chart area
chart.Series[PreContractSeriesName].ChartArea = PreContractSeriesName;
chart.Series[ContractSeriesName].ChartArea = ContractSeriesName;
//position chart areas side by side
chart.ChartAreas[PreContractSeriesName].Position = new ElementPosition(2, 5, 48, 80);
chart.ChartAreas[ContractSeriesName].Position = new ElementPosition(50, 5, 48, 80);
chart.Legends.Add(new Legend() {
Alignment = StringAlignment.Center,
Docking = Docking.Bottom }
);
chart.Series[ContractSeriesName].IsVisibleInLegend = false;
//set as pie chart
chart.Series[PreContractSeriesName].ChartType = SeriesChartType.Pie;
chart.Series[ContractSeriesName].ChartType = SeriesChartType.Pie;
chart.Series[PreContractSeriesName].Points.AddXY("source1", 100);
chart.Series[PreContractSeriesName].Points.AddXY("source2", 200);
chart.Series[PreContractSeriesName].Points.AddXY("source3", 300);
chart.Series[PreContractSeriesName].Points.AddXY("source4", 400);
chart.Series[PreContractSeriesName].Points.AddXY("source5", 500);
chart.Series[ContractSeriesName].Points.AddXY("source1", 140);
chart.Series[ContractSeriesName].Points.AddXY("source2", 240);
chart.Series[ContractSeriesName].Points.AddXY("source3", 340);
chart.Series[ContractSeriesName].Points.AddXY("source4", 440);
chart.Series[ContractSeriesName].Points.AddXY("source5", 540);
何が起こりますか..?コードを投稿して誰かがそれを踏み越えることを期待しても、誰も良いことはありません..あなたは何が問題であるかを述べることができますか、または問題はあなたの既存のコードにありますか? – MethodMan
@MethodMan、ありがとう。私は自分の投稿を編集して、私が経験した結果を強調し、より具体的な質問をしました。 – Ben