Java 如何使轴在像素方面大小相等?

Java 如何使轴在像素方面大小相等?,java,swing,jchart2d,Java,Swing,Jchart2d,我正在使用JChart2D进行可视化。我想使X轴和Y轴在像素方面相等。通过这样做,可以更容易地看到点之间在欧几里德距离内的距离(见图)。现在,x轴的拉伸程度更大。它们在值方面已经具有相同的范围 帧大小现在定义像素值,即: jFrame.setSize(800600)。然后,所有内容都会动态地放入框架中,在该框架中,Chart2D会调整自身大小以留出空间。我手动查找像素,但这似乎很愚蠢。另外,如果我有一个有很多集群的场景,图例线会自动换行,从而调整图表的大小 我在谷歌上搜索了很多,查看了文档,但我

我正在使用JChart2D进行可视化。我想使X轴和Y轴在像素方面相等。通过这样做,可以更容易地看到点之间在欧几里德距离内的距离(见图)。现在,x轴的拉伸程度更大。它们在值方面已经具有相同的范围

帧大小现在定义像素值,即:
jFrame.setSize(800600)。然后,所有内容都会动态地放入框架中,在该框架中,Chart2D会调整自身大小以留出空间。我手动查找像素,但这似乎很愚蠢。另外,如果我有一个有很多集群的场景,图例线会自动换行,从而调整图表的大小

我在谷歌上搜索了很多,查看了文档,但我一直找不到解决方案

那么,如何将图表设置为固定大小,独立于框架中的其他项目

图像示例:

这样做更容易看到每个点之间的距离 其他欧几里德距离


不是真的,欧几里德距离要求在你计算的2个点的末端的位置,你有它。。。否则,您将无法在画布上绘制任何内容


您可以使用的另一种方法是在画布上实现视口,但这仅适用于放大/缩小图像,而这不是您的情况…

如果您能够做到这一点,并且仍然坚持JFrame是非矩形的,并且在x范围内的剩余200 px中显示,您会期望什么?虚空灰色


您可以通过将GridBagLayout设置为
JFrame.getContentPane()
并定义由两个垂直单元格组成的网格来实现这一点,一个网格采用
600px x 600px
,另一个网格采用
200px 600px
。但是第二个窗格中有一个空白。HTH,Achim

“不太可能,欧几里德距离要求在计算的2个点的末端的位置,你有它……否则你将无法在画布上绘制任何东西……”我想你误解了我。我用它来可视化。从概念上讲,每个点周围都有一个不可见的圆圈,我计算圆圈内的点数。从计算角度看,这没有问题,但如果轴不代表相同的欧几里德距离pr像素,那么它会让人困惑。然后我看到一个椭圆,它实际上是一个圆。希望它有意义:)