如何在 mschart 中添加多个 x 轴?

How can I add multiple x axes in mschart?

我是 C# 的新手,但已经对其强大的开​​发环境感到惊讶(Visual Studio 2017)。不知道有没有办法把两个x轴放在一个默认支持的mschart上

我的程序很简单。它得到 "Y-Value" 和 "Time" 数据,它们是像“45.1”、“45.2”、45.3”和“115958”、“115959”、“120000”(hh:mm:ss)和程序绘制了每当 OnReceiveData 事件发生时出现的一系列 Y 值。

下面显示了代码及其图表。

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.OnReceiveData += this.OnReceiveRealData;
        }

        private void OnReceiveRealData(object sender, OpenAPILib._OpenAPIEvents_OnReceiveRealDataEvent e)
        {
            this.chart1.Series[0].Points.AddY(OpenAPI1.GetCommRealData(e.sRealType, "Y-Value").Trim());
        }
    }
}

X 轴显示程序已接收的 "Y-Value" 秒数。但这并不是每秒发生 "Y-Value" 事件(或每秒发生 OnReceiveData 事件)。有时事件在一秒钟内发生几次,有时几秒钟不发生。所以,我想添加另一个 X 轴,看看它过去了多少时间,或者在这段时间内收到了多少 "Y-Value",可能像下面这样。

如何在mschart中添加另一个X轴?我能得到一些与此相关的建议或链接吗?

您可以启用辅助 x 轴:

yourChartArea.AxisX2.Enabled = AxisEnabled.True;

您可以通过设置

将系列关联到它
someSeries.XAxisType = AxisType.Secondary;

默认情况下,它会位于顶部,您可以使用 Crossing 来移动它。

更强大和更多更复杂的额外轴见..实际上我不推荐这个,因为它不适合胆小的人或新手 ;-)

Secondary 轴的样式可以像 Primary 一样..