2012-08-10 8 views
6

¿Podría alguien proporcionar una explicación simple de los tipos de eje JFreeChart?JFreeChart dominio/rango ejes definidos

  1. En primer lugar, tenemos los ejes que se basan en la jerarquía de clases (ValueAxis, CategoryAxis, un montón de subclases)

  2. También tenemos el "eje de dominio" frente a "Eje de rango" distinción (solamente para xy parcelas?). No está del todo claro cómo se relacionan estos con los ejes basados ​​en la jerarquía de clases. Estas no son clases, pero hay métodos setDomainAxis y setRangeAxis en XYPlot.

  3. Visualmente pienso en ejes horizontales y verticales, no estoy seguro de cómo se relacionan con los conceptos anteriores (¿el "dominio" siempre es horizontal?). Creo que el eje x es horizontal y el eje y vertical, pero no estoy seguro de si este es siempre el caso con XYPlot.

EDIT: Me trataron de estudiar tanto los documentos de la API y la guía para desarrolladores. Los documentos API solo dan una jerarquía de clases, pero no está claro cuándo y cómo usarlos. La guía del desarrollador tampoco proporciona definición o explicación de "eje de dominio" y "eje de rango", solo utiliza estos términos. Admito que la pregunta es amplia, es porque no pude encontrar esta información básica en ninguna parte. Quería tener un entendimiento general, pero mi pregunta más importante en este momento es qué determina qué va a haber en el eje horizontal/vertical (¿el "dominio" siempre es horizontal? Si no es así cómo establecerlo) porque estoy obteniendo algo resultados locos y no sé por dónde empezar la depuración. Tampoco está claro si debo usar CombinedRangeXYPlot o CombinedDomainXYPlot si quiero que los dos gráficos se coloquen uno encima del otro.

EDIT2: Aunque esto no fue respondido, descubrí en el ínterin lo que determina si el eje del dominio es horizontal: el ajuste PlotOrientation. Esta configuración (en el nivel de la gráfica combinada) también determina si CombinedRangeXYPlot/CombinedDomainXYPlot organiza las dos gráficas horizontal o verticalmente.

+0

Disculpe, esta pregunta es demasiado amplia, inmanente en [API] (http://www.jfree.org/jfreechart/api/javadoc/org/jfree/chart/axis/package-tree.html) e ilustrada en el desarrollador [guía] (http://www.jfree.org/jfreechart/devguide.html). Adición: edite su pregunta para centrarse en el problema que provoca esta consulta. – trashgod

+0

Edité la pregunta. – lbalazscs

+0

+1 para seguimiento. – trashgod

Respuesta

7

En un XYPlot, cada serie que se está mostrando representa una función discreta f[t] con un conjunto discreto de de t {t1, t2, ..., tn} y sus valores correspondientes {f [T1], f [t2], ..., f [tn]}.

  • El dominio de la función es la celebración de todos los valores posibles de t.
  • rango de la función contiene todos los valores posibles de la función f[t].

Lo importante aquí es que puede haber múltiples puntos en la función con el mismo valor en el eje del rango, pero cada punto de la función debe tener un valor único en el eje del dominio. Por ejemplo: Los plátanos pueden tener el mismo premio que las manzanas, pero no puede haber dos premios para un plátano (¡díselo a los corredores !: P).

Normalmente, el eje horizontal es el eje del dominio, pero también se puede cambiar.

entonces usted tiene la clase Axis que posee una gran cantidad de posibles tipos de representaciones visuales de ejes (logarítmica/lineal/categoría/sin etiquetas/las líneas de división/azul línea del eje de color ...).

Por lo tanto, en resumen: el dominio y el rango son definiciones matemáticas y presentan algunas limitaciones en los datos mostrados. Los términos se usan para un tipo especial de datos (el clásico forma de una función que todo el mundo aprende en la escuela básica). No tienen nada que ver con su representación visual. Por lo tanto, el rango y el eje del dominio de un trazado se pueden definir como CategoryAxis, NumberAxis, LogarithmicAxis u otra cosa.

EDITAR (para completar): Puede cambiar la orientación de la gráfica (es decir, definir, cuál de los ejes es el eje de rango) usando PlotOrientation.VERTICAL/PlotOrientation.HORIZONTAL.

+1

¡Gracias! Entonces, ¿está diciendo que la distinción entre dominio y ejes de rango se aplica solo a XYPlots, que en realidad debería llamarse algo así como MathematicalFunctionPlot porque no puede mostrar valores xy arbitrarios dentro de una serie? Estoy aceptando esta respuesta siempre y cuando nadie esté en desacuerdo contigo ... – lbalazscs

+0

+1 Para ver la diferencia, prueba con 'PlotOrientation.HORIZONTAL' en este [ejemplo](). – trashgod

+0

@ user1235867 Eso es exactamente lo que es. Como lo mencionó trashgod, puede cambiar la orientación de la gráfica (es decir, definir, cuál de los dos ejes es el eje del dominio (que no puede contener más de un punto por valor)). Técnicamente, la distiction dominio/rango también se cumple para algunos otros tipos de gráficos (por ejemplo, 'CategoryPlot'). – brimborium