在java中,你能从两个数组制作一个折线图吗?
Posted
技术标签:
【中文标题】在java中,你能从两个数组制作一个折线图吗?【英文标题】:In java, can you make a line graph from two arrays? 【发布时间】:2016-10-17 22:14:27 【问题描述】:我想制作一个 x 值为 1-100 和 y 值范围为 1-18 的折线图。我将它们存储在两个当前打印到文本文件的数组中(出于显而易见的原因,我不想手动制作包含 100 个点的条形图)。也许使用应用程序窗口的东西?
我不知道我可以给你什么更多的信息来让你更清楚我在问什么,所以如果有什么就问它并发布它。
【问题讨论】:
寻找图形库。 到目前为止我还没有尝试过任何东西,我一直在尝试找到一些关于此的指南,但没有找到任何东西。我也不确定发布代码的最佳方式 【参考方案1】:可能是这样的吗?
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public final class LineGraph
private LineGraph()
public static void main(final String[] args)
SwingUtilities.invokeLater(LineGraph::doRun);
private static void doRun()
final int[] x = new int[] 0, 40, 80, 120, 160, 200, 240, 280, 320, 360;
final int[] y = new int[] 100, 200, 100, 50, 200, 0, 300, 200, 100, 300;
final
JFrame jFrame = new JFrame();
jFrame.getContentPane().setLayout(new BorderLayout());
jFrame.getContentPane().add(new JPanelImpl(x, y), BorderLayout.CENTER);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setSize(800, 600);
jFrame.setVisible(true);
private static final class JPanelImpl extends JPanel
private final int[] x;
private final int[] y;
public JPanelImpl(final int[] x, final int[] y)
this.x = x;
this.y = y;
@Override
public void paintComponent(final Graphics graphics)
graphics.setColor(Color.WHITE);
graphics.fillRect(0, 0, getWidth(), getHeight());
for(int i = 0; i < this.x.length; i++)
if(i + 1 < this.x.length)
final int x0 = this.x[i];
final int y0 = this.y[i];
final int x1 = this.x[i + 1];
final int y1 = this.y[i + 1];
graphics.setColor(Color.BLACK);
graphics.drawLine(x0, y0, x1, y1);
graphics.fillOval(x1 - 3, y1 - 3, 6, 6);
【讨论】:
感谢它的工作,但我有一些问题。该图非常小,位于左上角,并且上下颠倒。我会尝试自己修复它,但你知道为什么请告诉我。 窗口使用坐标,最小的X在窗口的左边,最大的X在右边,最小的Y在顶部,最大的Y在底部。我相信 X 轴就像你想要的那样。但是对于 Y 轴,执行类似 (height - y) 的操作(如果我没记错的话)。 我明白了,我只是在将变量设置到数组时将它们相乘。谢谢,这真的很有帮助 太棒了!不确定您是否注意到我添加了“graphics.fillOval(x1 - 3, y1 - 3, 6, 6);”为图中的每个点填充一个椭圆?以上是关于在java中,你能从两个数组制作一个折线图吗?的主要内容,如果未能解决你的问题,请参考以下文章