【问题标题】:How to make axes equal size in regards to pixels?如何使轴的像素大小相等?
【发布时间】:2017-11-11 08:26:04
【问题描述】:

我正在使用 JChart2D 进行可视化。我想让 X 和 Y 轴在像素方面相等。通过这样做,可以更容易地看出这些点在欧几里得距离中彼此之间的距离(见图)。就像现在一样,x 轴更加伸展。它们在值方面已经具有相同的范围。

framesize 定义了现在的像素值,即: jFrame.setSize(800,600);。然后,一切都动态地适合 Chart2D 调整自身大小以腾出空间的框架内。我手动找到像素,但这似乎很愚蠢。此外,如果我有一个包含很多集群的场景,则图例行将换行并因此调整图表的大小。

我搜索了很多并查看了文档,但我一直无法找到解决方案。

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

图片示例:

【问题讨论】:

    标签: java swing jchart2d


    【解决方案1】:

    如果你能做到并且仍然坚持 JFrame 是非矩形的以显示在 x 范围内的剩余 200 px 中,你会期待什么?虚空灰?

    你可以做到这一点,例如通过将 GridBagLayout 设置为 JFrame.getContentPane() 并定义两个垂直单元格的网格 - 一个网格采用 600px x 600px,第二个采用 200px x 600px。但是你在第二个窗格中有空白。 HTH,阿奇姆

    【讨论】:

      【解决方案2】:

      这样做可以更容易地看出这些点离每个点有多远 其他欧几里得距离

      不是真的,欧几里得距离最后需要你正在计算的 2 个点的位置,你有它......否则你将无法在画布上绘制任何东西..

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

      【讨论】:

      • "不是真的,欧几里得距离最后需要你正在计算的 2 个点的位置并且你有它......否则你将无法在画布上绘制任何东西.." 我认为你误解了我。我用它来进行可视化。从概念上讲,每个点周围都有一个不可见的圆圈,我计算圆圈内的点数。计算明智这没有问题,但如果轴不代表相同的欧几里德距离 pr 像素,那么它对人类来说是令人困惑的。然后我在看一个实际上是圆的椭圆。希望这是有道理的:)
      猜你喜欢
      • 1970-01-01
      • 2019-06-02
      • 1970-01-01
      • 2020-03-22
      • 2019-07-31
      • 2015-06-25
      • 2014-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多