我正在处理一个处理应用程序,它应该从串口抓取数据并放入各种图表中。我已经下载了giCentre Utilities库以绘制图形。
基于其中一个示例,我得到它来绘制一个简单的图形,但由于它将实时从串行端口获取数据,我需要能够添加数据。我试图使用Append()函数,但没有任何运气。
import org.gicentre.utils.stat.*; // For chart classes.
float[] test = {1900, 1910, 1920, 1930, 1940, 1950, 1960, 1970, 1980, 1990};
float[] test2 ={ 19000, 6489, 6401, 7657, 9649, 9767, 12167, 15154, 18200, 23124};
XYChart lineChart;
/** Initialises the sketch, loads data into the chart and customises its appearance.
*/
void setup()
{
size(500,200);
smooth();
noLoop();
PFont font = createFont("Helvetica",11);
textFont(font,10);
// Both x and y data set here.
lineChart = new XYChart(this);
append(test, 2050);
append(test2, 21000);
lineChart.setData(test, test2);
// Axis formatting and labels.
lineChart.showXAxis(true);
lineChart.showYAxis(true);
lineChart.setMinY(0);
lineChart.setYFormat("###");
lineChart.setXFormat("0000");
// Symbol colours
lineChart.setPointColour(color(180,50,50,100));
lineChart.setPointSize(5);
lineChart.setLineWidth(2);
}
/** Draws the chart and a title.
*/
void draw()
{
background(255);
textSize(9);
lineChart.draw(15,15,width-30,height-30);
}
不是行
append(test, 2050);
append(test2, 21000);
应该在(2050,21000)添加一个新的数据点?每次串行数据进入时都必须调用这些,然后重绘图。
非常感谢任何帮助或建议。
答案 0 :(得分:0)
append()
函数返回附加的数组。 append(test, 2050)
实际上并未更改test
数组,返回一个等效于test
的数组,并附加了2050。所以你应该能够做到以下几点:
test = append(test, 2050);
test2 = append(test2, 21000);
修改强>
以下是处理参考页面上的文档:append()
。这里有一些代码可以作为一个简单的测试(或学习工具)运行:
void setup()
{
int[] a = {1, 2, 3};
int[] b;
b = append(a, 4);
print(a.length + "\n");
print(b.length);
}
返回
3
4