Jfreechart: Est-il possible de changer la couleur de la barre?
Est-il possible de changer la couleur de la barre?
J'ai codé un programme simple pour le comptage.
Je veux mettre en œuvre une chose: si ce nombre est supérieur à 200, de l'utilisation de la couleur bleu pour dessiner la barre. Si non, utiliser la couleur jaune pour le faire.
Actuellement, tous les bar, la couleur est rouge.
Donc, je voudrais vous demander, est-il possible de changer la couleur de la barre?
Si oui, quelqu'un peut-il me donner quelques guide à réaliser?
Merci d'avance!
ci-joint mon codage:
<%@page contentType="text/html"%>
<%@page import="java.io.*" %>
<%@page import="java.sql.*" %>
<%@page import="org.jfree.data.category.*" %>
<%@page import="org.jfree.chart.*" %>
<%@page import="org.jfree.chart.plot.*" %>
<html>
<body>
<%
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
try
{
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/delivery","root","root");
Statement sta = con.createStatement();
ResultSet res = sta.executeQuery("SELECT inventory, subject from statistics");
int count;
String subject;
while (res.next())
{
count = res.getInt("inventory");
subject = res.getString("subject");
dataset.addValue(count,"enrollment count statistics", subject);
}
}
catch (Exception e) {
System.err.println(e.getMessage());
}
JFreeChart bar = ChartFactory.createBarChart("Enrollment Chart", "subject","Count",dataset, PlotOrientation.HORIZONTAL,true, false, false);
//BarRenderer renderer = (BarRenderer) bar.getCategoryPlot().getRenderer();
String fileName = "/bar.png";
String file = application.getRealPath("/") + fileName;
try
{
FileOutputStream fileOut = new FileOutputStream(file);
ChartUtilities.writeChartAsPNG(fileOut, bar, 300, 300);
}
catch (IOException e)
{
out.print(e);
}
%>
<img src="/delivery/bar.png" alt="subject Bar Chart" />
</body>
</html>
OriginalL'auteur Jfreechart | 2011-02-10
Vous devez vous connecter pour publier un commentaire.
La magie est la getItemPaint(int,int) méthode de la BarRenderer classe.
Un exemple est à http://javabeanz.wordpress.com/2007/07/04/creating-barcharts-with-custom-colours-using-jfreechart/
Ce que vous essayez de faire, serait quelque chose comme:
Et puis, après votre appel à ChartFactory.createBarChart, vous ne
OriginalL'auteur Stobor
Obtenir un handle vers le BarRenderer et appel setSeriesPaint(int série, java.awt.La peinture de la peinture).
OriginalL'auteur Piyush Mattoo
Prendre un coup d'oeil à ce lien
JFreeChart: Graphique à barres Démo 3: les différentes couleurs à l'intérieur d'une série
OriginalL'auteur Ali Ait-Bachir