Ho bisogno di nascondere ogni elemento secondo/terzo/quarto dalla legenda. C'è un modo per ottenere questo in jFreeChart? grazie!jFreeChart: come nascondere gli oggetti dalla legenda?
6
A
risposta
4
ok, l'ho fatto solo io. In questo modo rimuovo ogni secondo oggetto dalla legenda. per favore lascia un commento!
LegendItemCollection legendItemsOld = plot.getLegendItems();
final LegendItemCollection legendItemsNew = new LegendItemCollection();
for(int i = 0; i< legendItemsOld.getItemCount(); i++){
if(!(i%2 == 0)){
legendItemsNew.add(legendItemsOld.get(i));
}
}
LegendItemSource source = new LegendItemSource() {
LegendItemCollection lic = new LegendItemCollection();
{lic.addAll(legendItemsNew);}
public LegendItemCollection getLegendItems() {
return lic;
}
};
chart.addLegend(new LegendTitle(source));
9
Ho provato il suggerimento di cui sopra ma non sembra funzionare per me. Se si desidera rimuovere solo serie dalla legenda, è possibile farlo con il metodo setSeriesVisibleInLegend()
. Il mio scenario era che alcune delle mie serie non avevano una chiave della legenda. Se non hanno una chiave della legenda, la serie non dovrebbe essere visibile nella legenda. Ho implementato questo con il seguente codice:
for(int i = 0; i < seriesList.size(); i++){
if(seriesList.get(i).getKey() == null || seriesList.get(i).getKey().equals("")){
graph.getXYPlot().getRenderer().setSeriesVisibleInLegend(i, Boolean.FALSE);
}
}
Il seriesList
è una lista di seriesData
POJO di che ho creato che contiene tutti i dati del grafico per creare il grafico. Se il valore della chiave dell'oggetto seriesData
è null
o = ""
, la serie non sarà visibile nella legenda.
Problemi correlati
- 1. Incorporare la legenda nell'area di stampa di JFreeChart
- 2. System.Web.Caching.Cache Disporre gli oggetti eliminati dalla cache?
- 3. MongoDB rimuove gli oggetti GridFS dalla shell
- 4. linux/list.h - Come rimuovere in sicurezza gli oggetti dalla lista?
- 5. Nascondere una serie Highcharts senza utilizzare la legenda
- 6. Come nascondere gli elementi nel layout grafico?
- 7. Chart.js: nascondere la serie facendo clic sulla legenda
- 8. Come nascondere web.config dalla navigazione della directory?
- 9. Rimuovere gli oggetti JSON duplicati dalla lista in python
- 10. Come nascondere gli elementi optgroup/option?
- 11. Come nascondere gli elementi animati sul carico?
- 12. Come "==" funziona per gli oggetti?
- 13. Come contare gli oggetti JSON
- 14. Come ispezionare gli oggetti om?
- 15. Come evidenziare gli oggetti ListView
- 16. Come compareresti gli oggetti jQuery?
- 17. Come nascondere qualsiasi elemento dalla pagina solo dallo screen reader ma non dalla pagina per gli utenti normali?
- 18. istogramma in jfreechart
- 19. Skip e restituire gli oggetti dalla lista degli oggetti utilizzando Lodash/Sottolineatura
- 20. linea tratteggiata in Jfreechart
- 21. Come creare oggetti jQuery dalla matrice di oggetti jQuery?
- 22. Assi dominio/intervallo JFreeChart definiti
- 23. Nascondere WinForms app dalla barra delle applicazioni
- 24. Eclipse RCP con JFreeChart
- 25. JFreeChart con punti evidenziati
- 26. Guida con overlay JFreeChart
- 27. nascondere la proprietà dalla classe derivata
- 28. Estendi tutti gli oggetti Swift
- 29. JFreeChart con SWT
- 30. Come vengono memorizzati gli oggetti in JavaScript?
Questo va bene per una soluzione dinamica. È anche possibile utilizzare renderer.getLegendItems() e plot.setFixedLegendItems(). Ciò fornisce una soluzione più semplice, ma è valida solo se la tua legenda non cambierà dopo aver impostato la legenda fissa. Non ho tempo per creare i dettagli della soluzione, ma cerco getLegendItems e setFixedLegendItems in AbstractXYItemRenderer e XYPlot. – Jason