2012-08-10 13 views
6

Qualcuno potrebbe fornire una semplice spiegazione dei tipi di asse JFreeChart?Assi dominio/intervallo JFreeChart definiti

  1. In primo luogo, abbiamo gli assi che si basano sulla gerarchia delle classi (ValueAxis, CategoryAxis, un sacco di sottoclassi)

  2. Abbiamo anche "l'asse di dominio" contro "l'asse di gamma" distinzione (solo per xy grafici?). Non è del tutto chiaro come questi si colleghino agli assi basati sulla gerarchia di classi. Queste non sono classi ma ci sono i metodi setDomainAxis e setRangeAxis in XYPlot.

  3. Visivamente penso agli assi orizzontale e verticale, non sono sicuro di come siano correlati ai concetti precedenti (il "dominio" è sempre orizzontale?). Penso che l'asse x sia orizzontale e l'asse y verticale, ma non sono sicuro se questo è sempre il caso di XYPlot.

EDIT: ho cercato di studiare sia la documentazione API e la guida per gli sviluppatori. I documenti API forniscono solo una gerarchia di classi, ma non è chiaro quando e come usarli. La guida per gli sviluppatori inoltre non fornisce alcuna definizione o spiegazione di "asse del dominio" e "asse del campo", utilizza solo questi termini. Ammetto che la domanda è ampia, perché non sono riuscito a trovare da nessuna parte queste informazioni di base. Volevo avere una comprensione generale, ma la mia domanda più importante al momento è ciò che determina ciò che si ottiene sull'asse orizzontale/verticale (il "dominio" è sempre orizzontale? Se non come impostarlo?) Perché sto ottenendo alcuni risultati pazzeschi e non so da dove iniziare il debug. Inoltre non è chiaro se dovrei usare CombinedRangeXYPlot o CombinedDomainXYPlot se voglio che i due grafici siano posizionati uno sopra l'altro.

EDIT2: Sebbene non sia stata data risposta, ho scoperto nel frattempo che cosa determina se l'asse del dominio è orizzontale: l'impostazione PlotOrientation. Questa impostazione (a livello del grafico combinato) determina anche se CombinedRangeXYPlot/CombinedDomainXYPlot dispone i due grafici orizzontalmente o verticalmente.

+0

Siamo spiacenti, questa domanda è eccessivamente ampia, immanente nella [API] (http://www.jfree.org/jfreechart/api/javadoc/org/jfree/chart/axis/package-tree.html) e illustrata nello sviluppatore [guida] (http://www.jfree.org/jfreechart/devguide.html). Addendum: si prega di modificare la domanda per concentrarsi sul problema che richiede questa richiesta. – trashgod

+0

Ho modificato la domanda. – lbalazscs

+0

+1 per followup. – trashgod

risposta

7

In un XYPlot, ogni serie che sta visualizzando rappresenta una funzione discreta f[t] con un insieme discreto di t di {t1, t2, ..., tn} ei loro corrispondenti valori {f [t1], f [t2], ..., f [tn]}.

  • Il dominio della funzione è in possesso di tutti i possibili valori di t.
  • L'intervallo della funzione contiene tutti i valori possibili della funzione f[t].

La cosa importante è che nella funzione possono essere presenti più punti con lo stesso valore nell'asse dell'intervallo, ma ogni punto della funzione deve avere un valore univoco nell'asse del dominio. Ad esempio: Le banane possono avere lo stesso premio delle Mele, ma non ci possono essere due premi per un Banano (lo comunichi ai broker !: P).

Di solito, l'asse orizzontale è l'asse del dominio, ma può anche essere modificato.

allora si ha la classe di Axis, che contiene un sacco di possibili tipi di rappresentazioni visive di assi (logaritmica/lineare/categoria/no etichette/griglia/colore blu linea d'asse ...).

Quindi, in breve: il dominio e l'intervallo sono definizioni matematiche e pongono alcuni vincoli sui dati visualizzati. I termini sono usati per un tipo speciale di dati (la classica forma di una funzione che tutti imparano nella scuola di base). Non hanno nulla a che fare con la loro rappresentazione visiva. Quindi l'intervallo e l'asse del dominio di un grafico possono essere definiti come CategoryAxis, uno NumberAxis, uno LogarithmicAxis o altro.

MODIFICA (per completezza): è possibile modificare l'orientamento del grafico (ovvero definire quale degli assi è l'asse dell'intervallo) utilizzando PlotOrientation.VERTICAL/PlotOrientation.HORIZONTAL.

+1

Grazie! Quindi, stai dicendo che la distinzione tra assi dominio e range si applica solo per XYPlots, che in effetti dovrebbe essere chiamato qualcosa come MathematicalFunctionPlot perché non può visualizzare valori xy arbitrari all'interno di una serie? Accetto questa risposta finché nessuno non è d'accordo con te ... – lbalazscs

+0

+1 Per vedere la differenza, prova 'PlotOrientation.HORIZONTAL' su questo [esempio](). – trashgod

+0

@ user1235867 Questo è esattamente quello che è. Come menzionato in precedenza, è possibile modificare l'orientamento del grafico (ovvero definire quale dei due assi è l'asse del dominio (che non può contenere più di un punto per valore)). Tecnicamente, la distorsione dominio/intervallo vale anche per alcuni altri tipi di grafici (ad esempio 'CategoryPlot'). – brimborium