Teechart 在轴上设置小数位数并隐藏轴标签以获取更多系列

Teechart set num of decimals on Axis and hide Axis labels for further series

希望你能帮助我。 在 Builder C++ 中创建一个新的“Windows VCL 应用程序”。从“调色板”添加一个“Tchart”。 右键单击图表 -> 编辑图表 -> 单击系列 -> 添加... -> 线 -> 确定创建系列 1 并重复创建系列 2。 关 在 Unit1.cpp 中复制我的以下示例:

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include <vector>
//---------------------------------------------------------------------------

#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)

{
    std::vector<float> x1, y1, x2, y2;

for (int i = 0; i < 2000; i++) {
     float r1 = static_cast <float> (rand()) / static_cast <float> (RAND_MAX);
     float r2 = static_cast <float> (rand()) / static_cast <float> (RAND_MAX);
     x1.push_back(i+r1);
     y1.push_back(r1);
     x2.push_back(i+r2);
     y2.push_back(r2);

}

Chart1->BottomAxis->AxisValuesFormat = "0.0";


for (unsigned i = 0; i < x1.size(); i++) {
    Chart1->Series[0]->AddY(y1[i], x1[i]);
    Chart1->Series[1]->AddY(y2[i], x2[i]);
}
}
//---------------------------------------------------------------------------

编译并运行。如您所见,X 轴上的值出现重叠。

为了解决我会

  1. 只显示一位小数的 X 轴值
  2. 隐藏 Series1(即 Series2)的 X 轴标签

对于第一点,我已经按照您在代码中看到的那样进行了尝试,但它似乎不起作用。 非常感谢您。

您正在使用 AddY 方法向线系列添加点,将 x 值作为第二个参数传递,即标签。
这样做,底轴标签确实重叠了。

相反,我会使用 AddXY 方法,将 x 值作为第一个参数传递,将 y 值作为第二个参数传递:

for (unsigned i = 0; i < x1.size(); i++) {
    Chart1->Series[0]->AddXY(x1[i], y1[i]);
    Chart1->Series[1]->AddXY(x2[i], y2[i]);
}

这对我来说很好: