草庐IT

java - JFreeChart 域/范围轴定义

coder 2024-03-18 原文

有人可以提供 JFreeChart 轴类型的简单解释吗?

  1. 首先,我们有基于类层次结构的轴(ValueAxis、CategoryAxis、许多子类)

  2. 我们还有“域轴”与“范围轴”的区别(仅适用于 xy 图?)。目前尚不完全清楚这些与基于类层次结构的轴的关系。这些不是类,但 XYPlot 中有 setDomainAxis 和 setRangeAxis 方法。

  3. 视觉上我会在水平和垂直轴上思考,我不确定它们与之前的概念有何关系(“域”总是水平的吗?)。我认为 x 轴是水平的,y 轴是垂直的,但我不确定 XYPlot 是否总是这样。

编辑:我尝试研究 API 文档和开发人员指南。 API 文档只是给出了类的层次结构,但不清楚何时以及如何使用它们。开发人员指南也没有给出“域轴”和“范围轴”的定义或解释,它只是使用这些术语。我承认这个问题很宽泛,因为我在任何地方都找不到这个基本信息。我想有一个大致的了解,但我目前最重要的问题是什么决定了水平/垂直轴上的内容(“域”总是水平的吗?如果不是如何设置它?)因为我得到了一些疯狂的结果,我不知道从哪里开始调试。如果我想让两个图一个放在另一个上方,我也不清楚我应该使用 CombinedRangeXYPlot 还是 CombinedDomainXYPlot。

EDIT2:虽然没有回答这个问题,但我同时发现是什么决定了域轴是否水平:PlotOrientation环境。此设置(在组合图级别上)还决定了 CombinedRangeXYPlot/CombinedDomainXYPlot 是水平还是垂直排列两个图。

最佳答案

XYPlot 中,您显示的每个系列都代表一个离散函数 f[t]具有一组离散的 t 的 {t1, t2, ..., tn} 及其相应的值 {f[t1], f[t2], ..., f[tn] .

  • 函数的 包含t 的所有可能值。 .
  • 函数的范围包含函数的所有可能值f[t] .

这里重要的是,函数中可以有多个点在范围轴上具有相同的值,但函数的每个点在域轴上都必须具有唯一值。 例如:香蕉可以和苹果有相同的奖品,但一个香蕉不能有两个奖品(告诉经纪人!:P)。

通常,水平轴是域轴,但也可以更改。

然后你有类Axis它包含许多可能类型的轴视觉表示(对数/线性/类别/无标签/网格线/蓝色轴线...)。

总而言之:域和范围是数学定义,对显示的数据有一些限制。这些术语用于特殊类型的数据(每个人在基础学校学习的函数的经典形式)。他们与他们的视觉表现无关。因此,绘图的范围和域轴可以定义为 CategoryAxis , 一个 NumberAxis , 一个 LogarithmicAxis或其他东西。

编辑(为了完整性):您可以使用 PlotOrientation.VERTICAL 更改绘图的方向(即定义哪个轴是范围轴)/PlotOrientation.HORIZONTAL .

关于java - JFreeChart 域/范围轴定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11902731/

有关java - JFreeChart 域/范围轴定义的更多相关文章

  1. ruby - Facter::Util::Uptime:Module 的未定义方法 get_uptime (NoMethodError) - 2

    我正在尝试设置一个puppet节点,但ruby​​gems似乎不正常。如果我通过它自己的二进制文件(/usr/lib/ruby/gems/1.8/gems/facter-1.5.8/bin/facter)在cli上运行facter,它工作正常,但如果我通过由ruby​​gems(/usr/bin/facter)安装的二进制文件,它抛出:/usr/lib/ruby/1.8/facter/uptime.rb:11:undefinedmethod`get_uptime'forFacter::Util::Uptime:Module(NoMethodError)from/usr/lib/ruby

  2. ruby-on-rails - Rails 3.2.1 中 ActionMailer 中的未定义方法 'default_content_type=' - 2

    我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer

  3. ruby-on-rails - form_for 中不在模型中的自定义字段 - 2

    我想向我的Controller传递一个参数,它是一个简单的复选框,但我不知道如何在模型的form_for中引入它,这是我的观点:{:id=>'go_finance'}do|f|%>Transferirde:para:Entrada:"input",:placeholder=>"Quantofoiganho?"%>Saída:"output",:placeholder=>"Quantofoigasto?"%>Nota:我想做一个额外的复选框,但我该怎么做,模型中没有一个对象,而是一个要检查的对象,以便在Controller中创建一个ifelse,如果没有检查,请帮助我,非常感谢,谢谢

  4. ruby - 主要 :Object when running build from sublime 的未定义方法 `require_relative' - 2

    我已经从我的命令行中获得了一切,所以我可以运行rubymyfile并且它可以正常工作。但是当我尝试从sublime中运行它时,我得到了undefinedmethod`require_relative'formain:Object有人知道我的sublime设置中缺少什么吗?我正在使用OSX并安装了rvm。 最佳答案 或者,您可以只使用“require”,它应该可以正常工作。我认为“require_relative”仅适用于ruby​​1.9+ 关于ruby-主要:Objectwhenrun

  5. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  6. ruby - 触发器 ruby​​ 中 3 点范围运算符和 2 点范围运算符的区别 - 2

    请帮助我理解范围运算符...和..之间的区别,作为Ruby中使用的“触发器”。这是PragmaticProgrammersguidetoRuby中的一个示例:a=(11..20).collect{|i|(i%4==0)..(i%3==0)?i:nil}返回:[nil,12,nil,nil,nil,16,17,18,nil,20]还有:a=(11..20).collect{|i|(i%4==0)...(i%3==0)?i:nil}返回:[nil,12,13,14,15,16,17,18,nil,20] 最佳答案 触发器(又名f/f)是

  7. ruby-on-rails - 相关表上的范围为 "WHERE ... LIKE" - 2

    我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que

  8. ruby - 在 Ruby 中有条件地定义函数 - 2

    我有一些代码在几个不同的位置之一运行:作为具有调试输出的命令行工具,作为不接受任何输出的更大程序的一部分,以及在Rails环境中。有时我需要根据代码的位置对代码进行细微的更改,我意识到以下样式似乎可行:print"Testingnestedfunctionsdefined\n"CLI=trueifCLIdeftest_printprint"CommandLineVersion\n"endelsedeftest_printprint"ReleaseVersion\n"endendtest_print()这导致:TestingnestedfunctionsdefinedCommandLin

  9. ruby - 当使用::指定模块时,为什么 Ruby 不在更高范围内查找类? - 2

    我刚刚被困在这个问题上一段时间了。以这个基地为例:moduleTopclassTestendmoduleFooendend稍后,我可以通过这样做在Foo中定义扩展Test的类:moduleTopmoduleFooclassSomeTest但是,如果我尝试通过使用::指定模块来最小化缩进:moduleTop::FooclassFailure这失败了:NameError:uninitializedconstantTop::Foo::Test这是一个错误,还是仅仅是Ruby解析变量名的方式的逻辑结果? 最佳答案 Isthisabug,or

  10. ruby - 定义方法参数的条件 - 2

    我有一个只接受一个参数的方法:defmy_method(number)end如果使用number调用方法,我该如何引发错误??通常,我如何定义方法参数的条件?比如我想在调用的时候报错:my_method(1) 最佳答案 您可以添加guard在函数的开头,如果参数无效则引发异常。例如:defmy_method(number)failArgumentError,"Inputshouldbegreaterthanorequalto2"ifnumbereputse.messageend#=>Inputshouldbegreaterthano

随机推荐