我需要创建一个折线图,在旋转时,如下图所示(图像由TaW)垂直连接点。创建一个常规的水平图表是明确的,但我无法找到一个可以执行此操作的属性。切换x和y值显然会保持连接方式,我可以以某种方式自行切换轴吗?
答案 0 :(得分:2)
SeriesChartType.Line
的一个特别之处在于,您可以自由添加DataPoints
,不仅可以添加任何Y值,还可以添加任何X值。
其他图表类型需要X-Values是不同的,但线条可以随意前后移动并允许重复...
这可让我们随意修改Points
,但遗憾的是,您的要求并不明确。
你问'旋转图表'和'切换轴'。
现在,如果我们通过交换X值和Y值来切换轴,我们不仅旋转了图表,而且还沿着对角线镜像了它;蓝色系列是原始系列,橙色系列是交换x代表y的结果:
chart1.Series.Clear();
chart1.ChartAreas[0].AxisX.Interval = 2;
Series S1 = chart1.Series.Add("S1");
Series S2 = chart1.Series.Add("S2");
S1.ChartType = SeriesChartType.Line;
S2.ChartType = SeriesChartType.Line;
Random R = new Random(42);
for (int i = 0; i < 15; i++)
{
int v = R.Next(10);
S1.Points.AddXY(i, v);
S2.Points.AddXY(v, i);
}
要旋转某个东西,我们需要一个角度,这里是90°或-90°,还有一个旋转中心,这里可能是原点(0,0)。
镜像包括旋转和翻转。摆脱翻转,我们可以扭转X轴:
chart1.ChartAreas[0].AxisX.IsReversed = true;
注意结果看起来就像第一个系列逆时针旋转90°一样。另请注意,x轴现在按预期向后计数。
如果你想让左边的Y轴,(不旋转的图表看起来像什么!)那么可以使用original post中的这个翻转代码你向我们展示的形象来自:
ChartArea CA = chart1.ChartAreas[0];
CA.AxisY2.Enabled = AxisEnabled.True;
CA.AxisY.Enabled = AxisEnabled.False;
CA.AxisX.IsReversed = true;
这并不意味着X轴和Y轴真正切换,只是生成的图形看起来像..
如果这不是您的意思,请更清楚地解释一下自己!
特别注意,要“简单地”旋转原始蓝线而不是翻转和镜像,您需要知道旋转中心;测试你想要的东西试着画出来!!