对数轴标签/刻度定制

2023-12-03

我正在使用JFreeChart用于在我的 Java 应用程序中生成一些图表的 API。在我的一张图表中,我尝试使用LogAxis对象通过以下代码使我的 y 轴成为对数刻度轴(图中的 A):

LogAxis logAxis = new LogAxis("Price($)");
logAxis.setMinorTickMarksVisible(true);
logAxis.setAutoRange(true);
xyplot.setRangeAxis(logAxis);

enter image description here

然后我得到了一个对数刻度的 y 轴,刻度如 10^n(如图 A)。我想让它像B一样,这样对用户来说更直观,并且每个区间代表不同的值,如图,2->4、4->8、8->16,区间增长为2^名词较小的一点是,即使间隔代表不同的值,它们也显示相同的宽度。然而,当 O 尝试通过以下代码实现这一点时:

LogAxis logAxis = new LogAxis("Price($)");
logAxis.setBase(2);
logAxis.setTickUnit(new NumberTickUnit(2));
logAxis.setMinorTickMarksVisible(true);
logAxis.setAutoRange(true);
xyplot.setRangeAxis(logAxis);

我得到的是类似于图C的东西。

我怎样才能达到图B?


即使您使用的是LogAxis,您可以指定整数刻度单位,如下面 @amaidment 示例的变体所示。

LogAxis

/** @see http://stackoverflow.com/a/10353270/230513 */
private static void createFrame() {
    XYSeries series = new XYSeries("Series");
    for (int i = 0; i <= N; i++) {
        series.add(i, Math.pow(2, i));
    }
    NumberAxis xAxis = new NumberAxis("X");
    xAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    LogAxis yAxis = new LogAxis("Y");
    yAxis.setBase(2);
    yAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    XYPlot plot = new XYPlot(new XYSeriesCollection(series),
        xAxis, yAxis, new XYLineAndShapeRenderer(true, false));
    JFreeChart chart = new JFreeChart(
        "Chart", JFreeChart.DEFAULT_TITLE_FONT, plot, false);
    JFrame frame = new JFrame("LogAxis Test");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setContentPane(new ChartPanel(chart));
    frame.pack();
    frame.setVisible(true);
}

public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {

        @Override
        public void run() {
            createFrame();
        }
    });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对数轴标签/刻度定制 的相关文章

  • Objective-C 相当于 Java 枚举或“静态最终”对象

    我试图找到一个与 Java 枚举类型或 public static final 对象等效的 Objective C 例如 public enum MyEnum private String str private int val FOO f
  • 仅运行相应源代码已更改的单元测试?

    我正在 Jenkins CI 服务器中运行单元测试和 Selenium 测试 众所周知 在大型项目中测试需要很长时间才能运行 Java 是否有一个工具 框架只能触发其源代码已更改的测试 这是因为并非每次对 SCM 的提交都会影响源代码的所有
  • 使用 s:select 标签在下拉菜单中使用 i18n [重复]

    这个问题在这里已经有答案了 我的 JSP 页面中有一个下拉菜单 它是通过
  • Java 比 Xmx 参数消耗更多内存

    我有一个非常简单的 Web 服务器类 基于 Java SEHttpServer class 当我使用此命令启动编译的类来限制内存使用时 java Xmx5m Xss5m Xrs Xint Xbatch Test 现在如果我使用检查内存top
  • 如何将参数传递给Workmanager DoWork方法

    我想安排任务在 24 小时后从数据库中删除 public class WorkManager extends Worker public WorkManager NonNull Context context NonNull WorkerP
  • Maven项目中的HDF5

    我正在尝试将 hdf hdf5lib H5 导入到 NetBeans 中的 Maven 项目中 它有这个作为导入行 import hdf hdf5lib H5 正如这里所建议的 https support hdfgroup org prod
  • Java:Swing:设置JButton的位置

    我想实现以下布局 OK
  • 带嵌入式 tomcat 的 spring-boot 不会将请求分派到控制器

    我有一个使用 spring boot 和嵌入式 Tomcat 容器的应用程序 据我所知 我的代码与 spring boot 相同示例项目 https github com spring projects spring boot tree m
  • 如何从 Java 生产代码中删除调试语句

    编译器是否可以从生产代码中删除用于调试目的 例如日志记录 的语句 调试语句需要以某种方式进行标记 可能使用注释 设置属性 debug true 并在每个调试语句中检查它很容易 但这会降低性能 如果编译器能够简单地使调试语句消失 那就太好了
  • 是否有适用于 Java 的 CalDAV 客户端库? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想使用 CalDAV 协议与我的日
  • 错误包括 bouncycastle 提供商

    我需要使用bouncycastle provider我的项目中的库 我已将其包含在 gradle 项目中 apply plugin application sourceCompatibility 1 6 version 1 0 0 main
  • 用二进制数、常规数字和格雷编码填充矩阵

    我有一个包含 1 s 或 0 s 的矩阵 用于创建二进制数 其宽度为n 对于 n 2 和 n 3 它看起来像 00 000 01 001 10 010 11 011 100 101 110 111 等等 现在我正在使用以下代码来生成它 in
  • Java中如何将Object[]转换为String[]?

    我有一个关于 Java 的问题 我有一个Object Java默认的 不是用户定义的 我想将它转换为String 谁能帮我 谢谢 这是转换 for int i 0 i lt objectArr length i try strArr i o
  • Java 日期和 MySQL 时间戳时区

    我正在编辑一段代码 其基本功能是 timestamp new Date 然后坚持下去timestamp中的变量TIMESTAMPMySQL 表列 然而 通过调试我看到Date显示在正确时区的对象 GMT 1 当持久化在数据库上时 它是GMT
  • 如何让 Camel FTP 按需只获取一次

    我对骆驼还很陌生 我一直在尝试让 Camel 根据需要仅通过 FTP 获取单个文件一次 我无法让它发挥作用 这是我尝试过的 让我知道什么是最好的方法以及我的代码有什么问题 1 读取文件后发送一条空消息当收到空消息时 停止路由 from di
  • java.lang.IllegalStateException:FragmentManager 已被销毁

    活动中onResume我称之为 volley request 的方法 它获取项目列表 然后将它们加载到此活动内的 ListFragment 中 当我第一次进入活动时 一切正常 但当我重新进入活动时 ListFragment 为空 并且控制台
  • 使用 ProcessBuilder 启动 CMD

    我尝试使用以下代码在 Windows 中启动 CMD 应用程序 但它无法按预期工作 来自不同网站的几个示例表明 cmd 作为 ProcessBuilder 构造中的参数应该有效 我需要做什么才能让我的 Java 应用程序在 Windows
  • 为什么找不到 getservletcontext?

    我正在尝试使用getServletContext getRealPath 但我不断收到此错误 cannot find symbol symbol method getServletContext location interface jav
  • 原子整数的compareandexchange()与compareandset()

    在研究 AtomicInteger 时 我发现这个 API 提供了两种方法 比较和交换 如果当前值被引用 则自动将该值设置为 newValue to 作为见证值 预期值 记忆效应为 由指定VarHandle compareAndExchan
  • SWT StyledText 有高度限制吗?

    我正在尝试创建一个应用程序 其中包含在 ScrolledComposite 中显示的 StyledText 框 我在 StyledText 框中显示大量行时遇到困难 超过 2 550 行似乎会导致问题 StyledText 框本身不能有滚动

随机推荐

  • rmarkdown 在 kable 中转义 html

    我正在尝试为我的 kable 表的单元格提供一些自定义 HTML 类 但问题是 div 的编码就像单元格的内容一样 我记得闪亮的桌子有一种方法可以让 celle 的内容逃逸并按原样解释 rmarkdown knitr 有这样的东西吗 例如
  • 图像顶部的光滑滑块文本

    我正在尝试制作一个非常正常的轮播 在垂直中间的两侧有两个箭头 在图像顶部的中间有一个按钮的文本 尽管箭头和文本都是绝对的并且具有更高的 z index 但我无法让任何内容出现在图像顶部 这是带有我的代码的代码笔 http codepen i
  • javascript event.target 在 mozilla 中不起作用

  • .stop() 和 .animate() jQuery 函数转换为 javascript

    我也想学习 JavaScript 并查看各种 jQuery 函数及其等效的 JavaScript 我想将此 jQuery 函数转换为其等效的 JavaScript 函数 我怎样才能做到这一点 sample stop animate left
  • 在 Firebase 模型中保存推送的 ID

    我这里有 2 个 firebase 问题 A 以编程方式是一个好的做法吗将ID复制到本地模型 从数据库中排除 解析值时 来自 Firebase 的 Frank 建议该解决方案 在模型 Firebase 上保存 userId B 另一种解决方
  • ASP.Net ScriptMethod 生成空 JSON

    我正在使用 JavaScript 访问名为 GetPerson 的 ScriptService 方法 问题是它返回一个相当空的 JSON 字符串而不是实际的对象字符串 当我返回一个新的 DateTime 对象时也会发生同样的情况 因此我希望
  • LeanModal 不是一个函数

    希望你能帮我解决这个问题 我在我的网站上使用了一些 jQuery 脚本 其中一个是leanModal 我过去已经使用过几次 没有任何问题 我正在开发的网站 使用 WP 工作正常 直到几个小时前该模式停止工作 查看错误控制台 它指出 is n
  • 使用 WebJarAssets & Play 2.5 时如何防止循环依赖?

    在我实施了建议后answer我最后的question 在浏览器中访问该应用程序时收到以下错误 ProvisionException Unable to provision see the following errors 1 Tried p
  • 无法在下一个js上读取firebase中未定义的属性“长度”

    我在下一个 js 中使用 firebase 但它给出了一条错误消息 类型错误 无法读取未定义的属性 长度 无论如何我可以修复这个错误 这是我的 firebase 配置文件 import as firebase from firebase a
  • 同一任务上的多次等待可能会导致阻塞

    在同一个任务上使用多个等待应该小心 我在尝试使用时遇到过这种情况BlockingCollection GetConsumingEnumerable 方法 最终得到这个简化的测试 class TestTwoAwaiters public vo
  • 如何自动启动Solr?

    此刻我必须去 usr java apache solr 1 4 0 example然后执行以下操作 java jar start jar 如何让它在启动时自动启动 我在共享 Linux 服务器上 当您使用共享 Linux 机器时 您可能必须
  • 如何在C#中分割多个字符串

    我的问题包括如何分割这样的字符串 List of devices attached r n9887bc314 tdevice r n12n1n2nj1jn2 tdevice r n r n Into n9887bc314 n12n1n2nj
  • 类似函数的宏和奇怪的行为

    我已经开始阅读 Effective C 在第 2 项中的某个时刻 提到了以下内容 call f with the maximum of a and b define CALL WITH MAX a b f a gt b a b int a
  • 如何将 iPhone 应用程序本地化为不同的语言?

    谁能解释一下如何本地化 iPhone 应用程序 我对 XCode 本地化概念感到困惑 首先 您可以在项目设置中定义要管理的语言 这不是一项必要的工作 但从那里开始真是太好了 然后 对于您想要本地化的每个 XIB 单击它 转到属性面板并添加所
  • 如何连接具有相同前缀(和多个前缀)的文件?

    我有许多具有相同前缀的文件 只有下划线后面的位不同 我也有很多前缀 下划线不会出现在文件名中的其他位置 如何将具有相同前缀的所有文件连接成一个新文件 我补充说 我有数千个不同的前缀 我无法将它们提供给循环 你可以这样做 cat path p
  • iAds 无法显示时留下白色块

    自从更新到 iOS 5 以来 我遇到了 iAds 问题 我发现当广告无法显示时 它会在 iAd 通常所在的位置显示一个大的白色块 有办法解决这个问题吗 我尝试将 iAd 的背景颜色设置为与 UIView 的背景颜色相匹配 但这不起作用 非常
  • 如何将 optgroup 添加到 django ModelMultipleChoiceField?

    我有一个表格ModelMultipleChoiceField到类别列表 我想使用以下方法对类别进行分组Category group field 我认为通过改变领域 choices在 init 函数中它会起作用 class Categorie
  • 使用 qsort 函数以替代方式对整数数组进行排序。

    我最近学习了qsort函数 此 C 代码给出了不正确的输出 需要帮助 问题 以替代方式对整数数组进行排序 偶数索引和奇数索引的元素分别排序 输出 0 4 1 2 5 8 7 5 9 3 10 5 include
  • 两个数组的高效匹配(如何使用KDTree)

    我有两个二维数组 obs1 and obs2 它们代表两个独立的测量系列 并且都具有dim0 2 并且略有不同dim1 say obs1 shape 2 250000 and obs2 shape 2 250050 obs1 0 and o
  • 对数轴标签/刻度定制

    我正在使用JFreeChart用于在我的 Java 应用程序中生成一些图表的 API 在我的一张图表中 我尝试使用LogAxis对象通过以下代码使我的 y 轴成为对数刻度轴 图中的 A LogAxis logAxis new LogAxis