如何创建由5个子图表组成的图表

时间:2017-03-20 13:18:40

标签: c# asp.net charts mschart

我正在尝试创建一个包含五个子图表的图表图像。(参见图片)

ChartImage

图表的X轴对于所有5个子图表应该相同。

我如何通过MS Chart Controls实现这一目标?

目前我正在创建所有五个图表,但我不知道如何合并xAxis以及如何将所有5个子图表放入图像文件或图表中。

先谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

MsChart允许多个ChartArea。每个图表区域可以有多个Series。 根据您的屏幕设计,将有5个图表区域。每个ChartArea都会添加1个系列。

var chartArea1 = MyChart.ChartAreas.Add("ChartArea 1");
:
var chartArea5 = MyChart.ChartAreas.Add("ChartArea 5");

将系列添加到图表并指定图表区域

MyChart.Series[0].ChartArea = chartArea1.Name;
MyChart.Series[5].ChartArea = chartArea5.Name;

现在,要拥有一个共同的X轴,请指定

chartArea1.AlignWithChartArea = chartArea5.Name;
chartArea2.AlignWithChartArea = chartArea5.Name;

您也可以参考link获取MSChart。

图表区域展示位置更新 下面的代码显示了如何在图表控件中定位图表区域。注意: - X和Y位置是百分比而不是像素,缇等。

chartArea1.Position.Y = 0;
chartArea1.Position.Height = 43;
chartArea1.Position.Width = 100;
chartArea2.Position.Y = chartArea1.Position.Bottom + 1;
chartArea2.Position.Height = chartArea1.Position.Height;
chartArea2.Position.Width = chartArea1.Position.Width;

答案 1 :(得分:0)

您可以这样做:

ccc =[1, 2, 3, 4,5]
aaa = [11, 8, 12, 3,6]
bbb = [22,24,21,19,20]
ddd = [1,0,2,0,5]
fff = [32,32,41,35,16]
df = pd.DataFrame({'ID': ccc, 'AAA': aaa,'BBB': bbb, 'DDD': ddd, 'FFF': fff })

f, axarr =plt.subplots(5, 1, figsize=(14, 7))
df['BBB'].plot(ax=axarr[0])
df['AAA'].plot(ax=axarr[1])
df['FFF'].plot(ax=axarr[2])
df['DDD'].plot(ax=axarr[3])
df['BBB'].plot(ax=axarr[4])

enter image description here