我的图表有问题。 我用数值创建图表(时间为X轴,速度为Y轴) 我在一张图表上有3个系列图。 https://www.dropbox.com/s/vy6lw1b0lj2ql96/graph1.jpg
正如您在X-Ax上看到的那样,除了我唯一创建的客户标签之外,我没有看到任何带有值的标签。 我想要做的是将每个系列图的相关X值的客户标签添加到具有预定义间隔的现有自动值,因此当我添加以下行时: timeChart.ChartAreas [" ChartArea1"]。AxisX.CustomLabels.Add(1,1.5," test"); 剩下的所有自动生成的标签都消失了。
当我删除提到的行时,我可以看到我的图表的默认值: https://www.dropbox.com/s/5u2v8b60pgup4wd/graph2.JPG
我阅读了很多论坛,但没有为我找到合适的解决方案。 在每个论坛上 - 解决方案是配置以下对我不起作用的行: timeChart.ChartAreas [" ChartArea1"]。AxisX.Interval = 1; 我尝试在图表资产中更改了很多东西,但它仍然没有按预期工作。
我附上代码:
timeChart.ChartAreas["ChartArea1"].AxisX.Interval = 1;
timeChart.ChartAreas["ChartArea1"].AxisX.Minimum = 0;
timeChart.ChartAreas["ChartArea1"].AxisX.Maximum = m_totalTime + 1;
// timeChart.ChartAreas["ChartArea1"].AxisY.Interval = 1;
timeChart.ChartAreas["ChartArea1"].AxisY.Minimum = 0;
timeChart.ChartAreas["ChartArea1"].AxisY.Maximum = m_maxVelocity + 1;
timeChart.Titles["mainTitle"].Visible = true;
timeChart.Legends["Legend1"].Enabled = true;
distanceChart.Legends["Legend1"].Enabled = true;
distanceChart.Titles["mainTitle"].Visible = true;
//timeChart.Series["Time Chart A"].IsXValueIndexed = true;
//timeChart.Series["Time Chart B"].IsXValueIndexed = true;
//timeChart.Series["Time Chart C"].IsXValueIndexed = true;
timeChart.Series["Time Chart A"].Points.AddXY(0, 0);
timeChart.Series["Time Chart A"].Points.AddXY(m_nodeAT1Time, m_maxVelocity);
timeChart.Series["Time Chart A"].Points.AddXY(m_nodeAT1Time + m_nodeAT2Time, m_maxVelocity);
timeChart.Series["Time Chart A"].Points.AddXY(m_totalTime, 0);
timeChart.ChartAreas["ChartArea1"].AxisX.CustomLabels.Add(1, 1.5, "test");
// timeChart.ChartAreas["ChartArea1"].AxisY.Interval = 1;
timeChart.ChartAreas["ChartArea1"].AxisX.Interval = 1;
timeChart.ChartAreas["ChartArea1"].AxisX.LabelStyle.Interval = 1;
//timeChart.ChartAreas["ChartArea1"].AxisX.LabelStyle.Enabled = true;
timeChart.Series["Time Chart B"].Points.AddXY(0, 0);
timeChart.Series["Time Chart B"].Points.AddXY(m_nodeBT1Time, m_nodeBVelocity);
timeChart.Series["Time Chart B"].Points.AddXY(m_nodeBT1Time + m_nodeBT2Time, m_nodeBVelocity);
timeChart.Series["Time Chart B"].Points.AddXY(m_totalTime, 0);
timeChart.Series["Time Chart C"].Points.AddXY(0, 0);
timeChart.Series["Time Chart C"].Points.AddXY(m_nodeCT1Time, m_nodeCVelocity);
timeChart.Series["Time Chart C"].Points.AddXY(m_nodeCT1Time + m_nodeCT2Time, m_nodeCVelocity);
timeChart.Series["Time Chart C"].Points.AddXY(m_totalTime, 0);
timeChart.ChartAreas["ChartArea1"].AxisX.IsMarginVisible = true;
timeChart.ChartAreas["ChartArea1"].AxisX.Interval = 1;
感谢您的协助。
谢谢。
答案 0 :(得分:0)
你误解了轴标签和标题之间的区别。你的代码非常混乱,所以我将按步骤移动:首先绑定数据。
timeChart.Series["Time Chart A"].Points.AddXY(0, 0);
//...
timeChart.Series["Time Chart C"].Points.AddXY(m_totalTime, 0);
然后设置轴的标题
timeChart.AxisY.Title = "Times(s)";
timeChart.AxisX.Title = "Speed (m/s)";
这应该有效。但是,您可能希望强制图表在轴上具有一定的间隔
timeChart.ChartAreas["ChartArea1"].AxisX.Interval = 1;
timeChart.ChartAreas["ChartArea1"].AxisY.Interval = 1;
或最低限度或其他。图表应以这种方式获取数据,使用它们创建轴标签并以正确的方式显示它们。
告诉图表输入的数据类型
也很有用foreach(Series s in timeChart.Series)
{
s.XAxisType = AxisType.Double; //autocomplete should help you there, I can't remember the correct object
}