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 轴上的值出现重叠。
为了解决我会
- 只显示一位小数的 X 轴值
- 隐藏 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]);
}
这对我来说很好:
希望你能帮助我。 在 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 轴上的值出现重叠。
为了解决我会
- 只显示一位小数的 X 轴值
- 隐藏 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]);
}
这对我来说很好: