jfreechart柱状图

时间: 2023-07-22 16:25:03 浏览: 21
好的,您想了解关于 jfreechart 柱状图的内容吗?jfreechart 是一个 Java 开发的开源图表库,可以用于创建各种类型的图表,包括柱状图。以下是 jfreechart 柱状图的基本用法: 1. 导入 jfreechart 库的 jar 包,并在代码中导入相关类库: ``` import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartFrame; import org.jfree.chart.JFreeChart; import org.jfree.data.category.DefaultCategoryDataset; ``` 2. 创建一个 DefaultCategoryDataset 对象并添加数据: ``` DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.setValue(10, "Sales", "January"); dataset.setValue(20, "Sales", "February"); dataset.setValue(30, "Sales", "March"); ``` 3. 创建 JFreeChart 对象并设置图表标题、x 轴标签、y 轴标签: ``` JFreeChart chart = ChartFactory.createBarChart("Monthly Sales", "Month", "Sales", dataset); ``` 4. 创建 ChartFrame 对象并将 JFreeChart 对象添加到其中: ``` ChartFrame frame = new ChartFrame("Sales Report", chart); frame.setVisible(true); frame.setSize(500, 400); ``` 5. 运行程序即可显示柱状图。 希望以上内容能够对您有所帮助。

相关推荐

要使用JFreeChart生成柱状图,需要进行以下步骤: 1. 创建一个数据集对象,用于存储需要绘制的数据 2. 创建一个图表对象,并设置标题、x轴和y轴标签 3. 创建一个柱状图渲染器对象,设置颜色、边框等属性 4. 将数据集对象和渲染器对象关联到图表对象中 5. 将图表对象绘制到Swing组件中,如JPanel或JFrame中 下面是一个示例代码,可以生成一个简单的柱状图: java import java.awt.Color; import java.awt.Dimension; import java.util.Random; import javax.swing.JFrame; import javax.swing.JPanel; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.CategoryLabelPositions; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.BarRenderer; import org.jfree.data.category.DefaultCategoryDataset; public class BarChartExample { public static void main(String[] args) { // 生成随机数据 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); Random random = new Random(); for (int i = 0; i < 5; i++) { dataset.addValue(random.nextInt(100), "Series 1", "Category " + i); } // 创建柱状图对象 JFreeChart chart = ChartFactory.createBarChart( "Bar Chart Example", // 图表标题 "Category", // x轴标签 "Value", // y轴标签 dataset, // 数据集 PlotOrientation.VERTICAL, // 图表方向 true, // 是否显示图例 true, // 是否生成工具提示 false // 是否生成URL链接 ); // 设置柱状图渲染器 CategoryPlot plot = (CategoryPlot) chart.getPlot(); BarRenderer renderer = (BarRenderer) plot.getRenderer(); renderer.setSeriesPaint(0, Color.BLUE); renderer.setDrawBarOutline(false); // 设置x轴标签位置 CategoryAxis xAxis = plot.getDomainAxis(); xAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); // 设置y轴范围 NumberAxis yAxis = (NumberAxis) plot.getRangeAxis(); yAxis.setRange(0, 100); // 将图表绘制到Swing组件中 JPanel panel = new ChartPanel(chart); panel.setPreferredSize(new Dimension(500, 300)); JFrame frame = new JFrame("Bar Chart Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(panel); frame.pack(); frame.setVisible(true); } } 运行以上代码,即可看到生成的柱状图。
要绘制多条柱状图,你可以使用 JFreeChart 库中的 CategoryPlot 类。具体来说,你需要创建一个 CategoryDataset 对象来存储各个数据系列,然后将该对象传递给 CategoryPlot 的 setDataset() 方法。接下来,你可以使用 BarRenderer 类来设置每个数据系列的颜色、宽度等属性。 下面是一个简单的示例代码,它演示了如何绘制三条柱状图: java import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartFrame; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.renderer.category.BarRenderer; import org.jfree.data.category.DefaultCategoryDataset; public class MultipleBarChart { public static void main(String[] args) { // 创建数据集 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(1.0, "Series 1", "Category 1"); dataset.addValue(2.0, "Series 1", "Category 2"); dataset.addValue(3.0, "Series 1", "Category 3"); dataset.addValue(4.0, "Series 2", "Category 1"); dataset.addValue(5.0, "Series 2", "Category 2"); dataset.addValue(6.0, "Series 2", "Category 3"); dataset.addValue(7.0, "Series 3", "Category 1"); dataset.addValue(8.0, "Series 3", "Category 2"); dataset.addValue(9.0, "Series 3", "Category 3"); // 创建图表 JFreeChart chart = ChartFactory.createBarChart( "Multiple Bar Chart", // 标题 "Category", // x 轴标签 "Value", // y 轴标签 dataset // 数据集 ); // 设置每个数据系列的颜色 CategoryPlot plot = chart.getCategoryPlot(); BarRenderer renderer = (BarRenderer) plot.getRenderer(); renderer.setSeriesPaint(0, Color.RED); renderer.setSeriesPaint(1, Color.GREEN); renderer.setSeriesPaint(2, Color.BLUE); // 设置 x 轴标签的显示角度 CategoryAxis xAxis = (CategoryAxis) plot.getDomainAxis(); xAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); // 显示图表 ChartFrame frame = new ChartFrame("Multiple Bar Chart", chart); frame.pack(); frame.setVisible(true); } } 运行上面的代码,你将看到一个包含三条柱状图的图表。
要绘制多条柱状图,你可以使用 JFreeChart 库中的 CategoryPlot 类。具体来说,你需要创建一个 CategoryDataset 对象来存储各个数据系列,然后将该对象传递给 CategoryPlot 的 setDataset() 方法。接下来,你可以使用 BarRenderer 类来设置每个数据系列的颜色、宽度等属性。 下面是一个简单的示例代码,它演示了如何绘制三条柱状图: java import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartFrame; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.renderer.category.BarRenderer; import org.jfree.data.category.DefaultCategoryDataset; public class MultipleBarChart { public static void main(String[] args) { // 创建数据集 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(1.0, "Series 1", "Category 1"); dataset.addValue(2.0, "Series 1", "Category 2"); dataset.addValue(3.0, "Series 1", "Category 3"); dataset.addValue(4.0, "Series 2", "Category 1"); dataset.addValue(5.0, "Series 2", "Category 2"); dataset.addValue(6.0, "Series 2", "Category 3"); dataset.addValue(7.0, "Series 3", "Category 1"); dataset.addValue(8.0, "Series 3", "Category 2"); dataset.addValue(9.0, "Series 3", "Category 3"); // 创建图表 JFreeChart chart = ChartFactory.createBarChart( "Multiple Bar Chart", // 标题 "Category", // x 轴标签 "Value", // y 轴标签 dataset // 数据集 ); // 设置每个数据系列的颜色 CategoryPlot plot = chart.getCategoryPlot(); BarRenderer renderer = (BarRenderer) plot.getRenderer(); renderer.setSeriesPaint(0, Color.RED); renderer.setSeriesPaint(1, Color.GREEN); renderer.setSeriesPaint(2, Color.BLUE); // 设置 x 轴标签的显示角度 CategoryAxis xAxis = (CategoryAxis) plot.getDomainAxis(); xAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); // 显示图表 ChartFrame frame = new ChartFrame("Multiple Bar Chart", chart); frame.pack(); frame.setVisible(true); } } 运行上面的代码,你将看到一个包含三条柱状图的图表。
要在Java中绘制Excel柱状图,可以使用Apache POI库和JFreeChart库。下面是一个简单的示例代码: java import java.io.FileOutputStream; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.chart.ChartUtilities; public class ExcelBarChartExample { public static void main(String[] args) throws Exception { // 创建Excel工作簿和工作表 Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("Bar Chart"); // 创建数据集 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.setValue(120, "Sales", "Product A"); dataset.setValue(240, "Sales", "Product B"); dataset.setValue(180, "Sales", "Product C"); dataset.setValue(90, "Sales", "Product D"); // 创建柱状图 JFreeChart chart = ChartFactory.createBarChart("Product Sales", "Product", "Sales", dataset); // 将柱状图保存为PNG文件 ChartUtilities.saveChartAsPNG(new FileOutputStream("bar_chart.png"), chart, 500, 300); // 在Excel工作表中插入柱状图 Drawing<?> drawing = sheet.createDrawingPatriarch(); ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 0, 5, 10, 20); Picture pict = drawing.createPicture(anchor, workbook.addPicture( ChartUtilities.encodeAsPNG(chart.createBufferedImage(500, 300)), Workbook.PICTURE_TYPE_PNG)); // 保存Excel文件 FileOutputStream fileOut = new FileOutputStream("workbook.xlsx"); workbook.write(fileOut); fileOut.close(); workbook.close(); } } 这段代码创建了一个Excel工作簿和一个工作表,并向工作表中插入了一个柱状图。柱状图使用JFreeChart库创建,然后保存为PNG文件。接着,使用Apache POI库将PNG图片插入到Excel工作表中,最后将Excel文件保存到磁盘上。
### 回答1: JFreeChart是一个Java类库,可以用于创建各种类型的图表,包括折线图、柱状图、饼图等等。要创建动态折线图,可以使用JFreeChart的实时图表功能。 以下是使用JFreeChart创建动态折线图的步骤: 1.导入JFreeChart库。 2.创建一个折线图对象。 3.创建一个数据集对象。 4.创建一个图表面板对象。 5.将图表面板添加到Swing容器中。 6.创建一个定时器对象。 7.在定时器的actionPerformed方法中更新数据集和图表。 以下是具体实现: 1.导入JFreeChart库。 java import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.axis.ValueAxis; import org.jfree.chart.plot.XYPlot; import org.jfree.data.time.DynamicTimeSeriesCollection; import org.jfree.data.time.Second; import org.jfree.data.xy.XYDataset; import org.jfree.ui.ApplicationFrame; import javax.swing.*; import java.awt.*; import java.util.Random; 2.创建一个折线图对象。 java JFreeChart chart = ChartFactory.createTimeSeriesChart("Dynamic Line Chart", "Time", "Value", createDataset(), true, true, false); 3.创建一个数据集对象。 java private static final int COUNT = 200; private static final int INTERVAL = 1000; private static final float SCALE = 100; private static final Random random = new Random(); private static float[] data = new float[COUNT]; private static int index = 0; private static DynamicTimeSeriesCollection createDataset() { data = new float[COUNT]; index = 0; for (int i = 0; i < data.length; i++) { data[i] = 50; } return new DynamicTimeSeriesCollection(1, COUNT, new Second()); } 4.创建一个图表面板对象。 java ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new Dimension(640, 480)); 5.将图表面板添加到Swing容器中。 java JFrame frame = new JFrame("Dynamic Line Chart"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(chartPanel); frame.pack(); frame.setVisible(true); 6.创建一个定时器对象。 java Timer timer = new Timer(INTERVAL, e -> { float newData = (float) (SCALE * random.nextGaussian() + 50); data[index] = newData; index++; dataset.advanceTime(); dataset.appendData(new float[][]{data}, 0, 1); }); timer.setInitialDelay(0); timer.start(); 7.在定时器的actionPerformed方法中更新数据集和图表。 java private static final DynamicTimeSeriesCollection dataset = createDataset(); 完整代码如下: java import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.axis.ValueAxis; import org.jfree.chart.plot.XYPlot; import org.jfree.data.time.DynamicTimeSeriesCollection; import org.jfree.data.time.Second; import org.jfree.data.xy.XYDataset; import org.jfree.ui.ApplicationFrame; import javax.swing.*; import java.awt.*; import java.util.Random; public class DynamicLineChart extends ApplicationFrame { private static final int COUNT = 200; private static final int INTERVAL = 1000; private static final float SCALE = 100; private static final Random random = new Random(); private static float[] data = new float[COUNT]; private static int index = 0; private static final DynamicTimeSeriesCollection dataset = createDataset(); private static DynamicTimeSeriesCollection createDataset() { data = new float[COUNT]; index = 0; for (int i = 0; i < data.length; i++) { data[i] = 50; } return new DynamicTimeSeriesCollection(1, COUNT, new Second()); } public DynamicLineChart(String title) { super(title); JFreeChart chart = ChartFactory.createTimeSeriesChart("Dynamic Line Chart", "Time", "Value", dataset, true, true, false); XYPlot plot = chart.getXYPlot(); ValueAxis domainAxis = plot.getDomainAxis(); domainAxis.setAutoRange(true); ValueAxis rangeAxis = plot.getRangeAxis(); rangeAxis.setRange(0, 100); NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis(); numberAxis.setAutoRangeIncludesZero(false); ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new Dimension(640, 480)); setContentPane(chartPanel); Timer timer = new Timer(INTERVAL, e -> { float newData = (float) (SCALE * random.nextGaussian() + 50); data[index] = newData; index++; dataset.advanceTime(); dataset.appendData(new float[][]{data}, 0, 1); }); timer.setInitialDelay(0); timer.start(); } public static void main(String[] args) { DynamicLineChart chart = new DynamicLineChart("Dynamic Line Chart"); chart.pack(); chart.setVisible(true); } } ### 回答2: JFreeChart是一个开源的Java图表库,可以用来创建各种类型的图表,包括动态折线图。动态折线图是一种实时更新数据的图表,可以实时展示数据的变化趋势。 要创建一个动态折线图,我们需要使用JFreeChart库的一些类和方法。首先,我们可以创建一个折线图的数据集,可以是一个默认的XYSeries对象,用于存储数据点的坐标。然后,我们可以创建一个ChartPanel对象,它是Swing组件,用于显示折线图。接下来,我们可以调用动态更新数据的方法,例如addOrUpdate(),来更新图表中的数据。 为了实现动态效果,我们可以使用一个计时器,例如java.util.Timer类,来定时更新数据和刷新图表。我们可以在计时器的run()方法中更新数据集,并通过ChartPanel对象的repaint()方法重新绘制图表。 代码示例如下: java import java.awt.*; import java.util.*; import javax.swing.*; import org.jfree.chart.*; import org.jfree.data.xy.*; import org.jfree.ui.*; public class DynamicLineChart extends ApplicationFrame { private XYSeries dataSeries; public DynamicLineChart(String title) { super(title); // 创建数据集 dataSeries = new XYSeries("数据"); XYSeriesCollection dataset = new XYSeriesCollection(); dataset.addSeries(dataSeries); // 创建图表 JFreeChart chart = ChartFactory.createXYLineChart( "动态折线图", "X", "Y", dataset, PlotOrientation.VERTICAL, true, true, false); // 创建图表面板 ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new java.awt.Dimension(500, 270)); setContentPane(chartPanel); } public void updateData() { // 模拟数据更新 Random random = new Random(); double x = dataSeries.getItemCount(); double y = random.nextDouble() * 100; // 添加新的数据点或更新已有数据点 dataSeries.addOrUpdate(x, y); } public static void main(String[] args) { DynamicLineChart chart = new DynamicLineChart("动态折线图示例"); chart.pack(); RefineryUtilities.centerFrameOnScreen(chart); chart.setVisible(true); // 定时更新数据和刷新图表 Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { chart.updateData(); chart.repaint(); } }, 0, 1000); // 每秒更新一次 } } 以上就是使用JFreeChart创建动态折线图的基本步骤和示例代码。运行程序后,将会看到一个实时更新数据的折线图窗口,每秒钟更新一次数据点,并展示出数据的变化趋势。 ### 回答3: JFreeChart是一个功能强大的Java开源图表库,可以用来创建各种类型的图表,包括动态折线图。 要使用JFreeChart创建一个动态折线图,首先需要准备好数据集。数据集是一个包含数据点的集合,每个数据点由两个值组成,一个是横坐标的值,一个是纵坐标的值。 在创建数据集后,可以创建一个折线图对象,并将数据集传递给它。然后,可以对折线图进行自定义设置,如设置标题、坐标轴标签等。 接下来,需要创建一个绘图面板,并将折线图添加到绘图面板中。 然后,可以创建一个窗口,将绘图面板添加到窗口中,并设置窗口的大小和可见性。 为了实现动态效果,可以在一个循环中更新数据集的值,然后通过调用绘图面板的repaint()方法来重绘图表。 例如,可以使用一个计时器对象每隔一定时间更新数据集的值,并重新绘制图表。这样就可以实现图表的动态更新。 最后,当不再需要动态折线图时,可以通过调用窗口的dispose()方法来释放资源。 总之,使用JFreeChart创建动态折线图的关键步骤是准备数据集、创建折线图对象、设置图表属性、创建绘图面板、创建窗口、更新数据集并重绘图表。
在Echarts柱状图中,可以通过设置label的position属性来控制柱子上文字的位置。下面是一些可选的position属性值: 1. inside:文字在柱状图内部的中央位置。 2. top:文字在柱状图上方的正上方位置。 3. bottom:文字在柱状图下方的正下方位置。 4. left:文字在柱状图左侧的位置。 5. right:文字在柱状图右侧的位置。 6. insideTop:文字在柱状图内部靠顶部位置。 7. insideBottom:文字在柱状图内部靠下方位置。 8. insideRight:文字在柱状图内部靠右边位置。 9. insideLeft:文字在柱状图内部靠左边位置。 10. 坐标[x,y]:可以通过具体的坐标值来控制文字的位置,以柱状图的顶部为原点。 因此,你可以根据需要选择适当的position属性值来控制柱子上文字的位置。12 #### 引用[.reference_title] - *1* [Echarte柱状图文字位置](https://blog.csdn.net/weixin_45024541/article/details/103955433)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [JFreeChart 让X轴的标题竖着显示](https://download.csdn.net/download/huley/2032956)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
在JSP页面上绘制柱状图,可以使用JFreeChart库。以下是绘制柱状图的步骤: 1.在JSP页面中引入JFreeChart库的jar包。 2.在JSP页面中创建一个数据集对象,用于存储要绘制的数据。 3.创建一个图表对象,并设置图表的标题和x轴、y轴的标签。 4.创建一个柱状图绘制对象,并将数据集对象和图表对象传递给它。 5.设置柱状图的样式,例如颜色、边框等。 6.将柱状图绘制对象添加到图表对象中。 7.使用ChartUtilities.writeChartAsPNG()方法将图表对象转换为PNG格式的图片,并将其输出到JSP页面中。 下面是一个示例代码,用于在JSP页面上绘制柱状图: java <%@ page import="org.jfree.chart.ChartFactory"%> <%@ page import="org.jfree.chart.ChartUtilities"%> <%@ page import="org.jfree.chart.JFreeChart"%> <%@ page import="org.jfree.chart.plot.PlotOrientation"%> <%@ page import="org.jfree.data.category.DefaultCategoryDataset"%> <% // 创建数据集对象 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(1.0, "Series 1", "Category 1"); dataset.addValue(2.0, "Series 1", "Category 2"); dataset.addValue(3.0, "Series 1", "Category 3"); dataset.addValue(4.0, "Series 1", "Category 4"); dataset.addValue(5.0, "Series 1", "Category 5"); // 创建图表对象 JFreeChart chart = ChartFactory.createBarChart( "Chart Title", // 图表标题 "Category", // x轴标签 "Value", // y轴标签 dataset, // 数据集对象 PlotOrientation.VERTICAL, // 图表方向 true, // 是否显示图例 true, // 是否生成工具提示 false // 是否生成URL链接 ); // 设置柱状图的样式 chart.getCategoryPlot().getRenderer().setSeriesPaint(0, Color.blue); // 将图表对象转换为PNG格式的图片,并输出到JSP页面中 ChartUtilities.writeChartAsPNG(response.getOutputStream(), chart, 500, 300); %>
生成Java左右横向柱状图可以使用Java的图形库,例如JavaFX或JFreeChart。 以下是一个使用JFreeChart库生成左右横向柱状图的示例代码: java import java.awt.Color; import java.awt.Dimension; import javax.swing.JFrame; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.BarRenderer; import org.jfree.data.category.DefaultCategoryDataset; public class HorizontalBarChartExample extends JFrame { public HorizontalBarChartExample() { // Create dataset DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(1, "Series 1", "Category 1"); dataset.addValue(2, "Series 1", "Category 2"); dataset.addValue(3, "Series 1", "Category 3"); dataset.addValue(4, "Series 1", "Category 4"); dataset.addValue(5, "Series 1", "Category 5"); // Create chart JFreeChart chart = ChartFactory.createBarChart( "Horizontal Bar Chart Example", "Value", "Category", dataset, PlotOrientation.HORIZONTAL, false, true, false); // Set chart background color chart.setBackgroundPaint(Color.white); // Get plot CategoryPlot plot = chart.getCategoryPlot(); // Set plot background color plot.setBackgroundPaint(Color.lightGray); // Set axis ranges NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setRange(0, 10); // Set bar colors BarRenderer renderer = (BarRenderer) plot.getRenderer(); renderer.setSeriesPaint(0, Color.blue); // Set category label positions CategoryAxis domainAxis = plot.getDomainAxis(); domainAxis.setCategoryLabelPositions(CategoryLabelPositions.STANDARD); // Create chart panel ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new Dimension(500, 300)); // Add chart panel to frame setContentPane(chartPanel); } public static void main(String[] args) { HorizontalBarChartExample example = new HorizontalBarChartExample(); example.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); example.pack(); example.setLocationRelativeTo(null); example.setVisible(true); } } 该代码创建了一个左右横向柱状图,并使用了JFreeChart库中的一些属性来设置图表的外观和行为。你可以根据需要更改这些属性来创建符合你需求的左右横向柱状图。
您可以使用Apache POI和JFreeChart这两个Java库来实现导出柱状图。具体步骤如下: 1. 使用Apache POI创建Excel工作簿对象,并创建一个工作表对象。 2. 使用JFreeChart创建柱状图对象,并设置数据集。 3. 将柱状图对象插入到Excel工作表中。 4. 将Excel工作簿写入输出流,即可将柱状图导出为Excel文件。 以下是一个简单的示例代码,可以实现导出柱状图: java import java.io.FileOutputStream; import java.io.OutputStream; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.DefaultCategoryDataset; public class BarChartExporter { public static void export(String filePath, String chartTitle, String categoryAxisLabel, String valueAxisLabel, String[] categories, double[] values) throws Exception { Workbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("Bar Chart"); // Create dataset DefaultCategoryDataset dataset = new DefaultCategoryDataset(); for (int i = 0; i < categories.length; i++) { dataset.addValue(values[i], "Series 1", categories[i]); } // Create chart JFreeChart chart = ChartFactory.createBarChart(chartTitle, categoryAxisLabel, valueAxisLabel, dataset, PlotOrientation.VERTICAL, true, true, false); // Insert chart into Excel int chartWidth = 640; int chartHeight = 480; byte[] chartImage = ChartUtilities.encodeAsPNG(chart.createBufferedImage(chartWidth, chartHeight)); Drawing<?> drawing = sheet.createDrawingPatriarch(); ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, categories.length + 1, 0, categories.length + 10, 20); drawing.createPicture(anchor, workbook.addPicture(chartImage, Workbook.PICTURE_TYPE_PNG)); // Write Excel file OutputStream outputStream = new FileOutputStream(filePath); workbook.write(outputStream); workbook.close(); outputStream.close(); } } 该工具类支持导出一个柱状图,可以通过设置参数来自定义柱状图的标题、横轴标签、纵轴标签、分类和值,以及输出文件路径。您可以根据需要进行修改。

最新推荐

使用 jfreechart 生成 曲线、柱状图、饼状图、分布图 展示到JSP

虽然现在JS做报表和图形展示已经非常普遍和漂亮了,但是不能忽略有jfreechart 这样一种东西! 这些翻阅资料,在看以前写的示例时发现了关于jfreechart 的简单示例,不管怎样发上来分享一下!

jfreechart应用_经典例题_生成饼状图、生成单组柱状图、生成多组柱状图、生成堆积柱状图

jfreechart应用_经典例题_生成饼状图、生成单组柱状图、生成多组柱状图、生成堆积柱状图

kube-flannel.yaml

k8s网络插件

发放赠品记录单.xlsx

发放赠品记录单.xlsx

基于51单片机的usb键盘设计与实现(1).doc

基于51单片机的usb键盘设计与实现(1).doc

"海洋环境知识提取与表示:专用导航应用体系结构建模"

对海洋环境知识提取和表示的贡献引用此版本:迪厄多娜·察查。对海洋环境知识提取和表示的贡献:提出了一个专门用于导航应用的体系结构。建模和模拟。西布列塔尼大学-布雷斯特,2014年。法语。NNT:2014BRES0118。电话:02148222HAL ID:电话:02148222https://theses.hal.science/tel-02148222提交日期:2019年HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire论文/西布列塔尼大学由布列塔尼欧洲大学盖章要获得标题西布列塔尼大学博士(博士)专业:计算机科学海洋科学博士学院对海洋环境知识的提取和表示的贡献体系结构的建议专用于应用程序导航。提交人迪厄多内·察察在联合研究单位编制(EA编号3634)海军学院

react中antd组件库里有个 rangepicker 我需要默认显示的当前月1号到最后一号的数据 要求选择不同月的时候 开始时间为一号 结束时间为选定的那个月的最后一号

你可以使用 RangePicker 的 defaultValue 属性来设置默认值。具体来说,你可以使用 moment.js 库来获取当前月份和最后一天的日期,然后将它们设置为 RangePicker 的 defaultValue。当用户选择不同的月份时,你可以在 onChange 回调中获取用户选择的月份,然后使用 moment.js 计算出该月份的第一天和最后一天,更新 RangePicker 的 value 属性。 以下是示例代码: ```jsx import { useState } from 'react'; import { DatePicker } from 'antd';

基于plc的楼宇恒压供水系统学位论文.doc

基于plc的楼宇恒压供水系统学位论文.doc

"用于对齐和识别的3D模型计算机视觉与模式识别"

表示用于对齐和识别的3D模型马蒂厄·奥布里引用此版本:马蒂厄·奥布里表示用于对齐和识别的3D模型计算机视觉与模式识别[cs.CV].巴黎高等师范学校,2015年。英语NNT:2015ENSU0006。电话:01160300v2HAL Id:tel-01160300https://theses.hal.science/tel-01160300v22018年4月11日提交HAL是一个多学科的开放获取档案馆,用于存放和传播科学研究文件,无论它们是否已这些文件可能来自法国或国外的教学和研究机构,或来自公共或私人研究中心。L’archive ouverte pluridisciplinaire博士之路博士之路博士之路在获得等级时,DOCTEURDE L'ÉCOLE NORMALE SUPERIEURE博士学校ED 386:巴黎中心数学科学Discipline ou spécialité:InformatiquePrésentée et soutenue par:马蒂厄·奥布里le8 may 2015滴度表示用于对齐和识别的Unité derechercheThèse dirigée par陪审团成员équipe WILLOW(CNRS/ENS/INRIA UMR 8548)慕尼黑工业大学(TU Munich�

valueError: Pandas data cast to numpy dtype of object. Check input data with np.asarray(data).

这个错误通常发生在使用 Pandas DataFrame 时,其中包含了一些不能被转换为数字类型的数据。 解决方法是使用 `pd.to_numeric()` 函数将数据转换为数字类型。例如: ```python import pandas as pd import numpy as np # 创建一个包含字符串和数字的 DataFrame df = pd.DataFrame({'A': ['a', 'b', 'c'], 'B': [1, 2, '3']}) # 尝试将整个 DataFrame 转换为数字类型会报错 np.asarray(df, dtype=np.float) # 使