【发布时间】:2018-05-22 23:18:14
【问题描述】:
我正在尝试根据数组中保存的数据绘制折线图。我设法绘制了 X 和 Y 轴。但是,当我将带有数据的线绘制到图表上时,它不会与 X 和 Y 轴值对齐。我不确定如何解决这个问题。我已经展示了下面的代码:
public void drawLineG(Graphics g, int yCoords[]) {
String maxY = Integer.toString(getMax(yCoords));
String minY = Integer.toString(getMin(yCoords));
String maxX = Double.toString((xInterval * yCoords.length) - xInterval);
String minX = Double.toString(xStart);
g.setColor(Color.BLUE);
int height = (getHeight() / 2);
int x = 200; // start x point
// previous coord positions.
int prevX = x;
int prevY = yCoords[0];
g.setColor(Color.BLACK);
g.drawLine(prevX, getHeight() / 2, 500, getHeight() / 2);
g.drawLine(prevX, 200, 200, getHeight() / 2);
g.setColor(Color.BLUE);
g.drawString(minY, 190, (getHeight() / 2));
g.drawString(maxY, 180, (getHeight() / 2) - 255);
g.drawString(yLabel, 140, (getHeight() / 2) - 100);
g.drawString(minX, 192, (getHeight() / 2) + 20);
g.drawString(maxX, 500, (getHeight() / 2) + 20);
g.drawString(xLabel, 350, (getHeight() / 2) + 50);
for (int y : yCoords) {
g.setColor(Color.RED);
g.drawLine(prevX, height - prevY, x, height - y);
prevX = x;
prevY = y;
// add an increment to the X pos.
x = x + 50;
}
}
我一直在测试的数据数组包含以下值:0, 3, 4, 7, 5, 10, 3
但是,当它绘制在图表上时,它与 x 和 y 轴上的值不一致。
当前:https://i.stack.imgur.com/Ju8BQ.jpg 我想要达到的目标:https://i.stack.imgur.com/n9Aio.jpg
有什么帮助吗?
谢谢
【问题讨论】:
-
"它与 x 和 y 轴上的值不一致。" 是什么意思?它在轴的左/右?还是在他们之上/之下?这些坐标仅适用于
y坐标?你能发一个合适的minimal reproducible example吗? -
嗨,我已经包含了显示内容的图像。我只是想绘制 y 值。 x 轴由 xinterval 值决定。然而,最后一个值为 10 并且应该显示在图表的右上角
-
你能发布一张应该是什么输出的图片吗?
-
刚刚添加