使用JFreeChart绘制散点图
因为项目需要所以开始搞Java和JFreeChart类库…真蛋疼,看了51cto的该类库专题:http://developer.51cto.com/art/201112/309201.htm,这是最基本的,不懂JFreeChart的朋友请先移步此处。
很不错,讲得比较清楚,只是和官方发布的demo有些重合了吧,都是pieChart,敢换一个别的图吗?
下面我把画图所必须的三个模块列出来,其他的部分就不一一提供了,有需要的可以看看:
- //加载dataset,具体的业务逻辑可以不用理会
- public static XYDataset createxydataset(ArrayList<LineInfo> xydatalist, ArrayListMultimap<Integer, Integer> tabBat) {
- DefaultXYDataset dataset = new DefaultXYDataset();
- LineInfo tabTmp = xydatalist.get(0);
- int numTmp = tabTmp.getMeterNum();
- Set<Integer> allKey = tabBat.keySet();
- Iterator<Integer> it = allKey.iterator();
- int keyTmp = 0;
- while(it.hasNext())
- {
- keyTmp = it.next();
- if(tabBat.containsEntry(keyTmp, numTmp))
- break;
- }
- List<Integer> allNum = tabBat.get(keyTmp);
- int allNumSize = allNum.size();
- //data是数据的核心
- double[][] data = new double[2][allNumSize];
- it = allNum.iterator();
- Iterator<LineInfo> it2 = xydatalist.iterator();
- int tmp = 0, count = 0;
- LineInfo lineTmp = new LineInfo();
- while(it.hasNext())
- {
- tmp = it.next();
- it2 = xydatalist.iterator();
- while(it2.hasNext())
- {
- lineTmp = it2.next();
- if(tmp == lineTmp.getMeterNum())
- break;
- }
- data[0][count] = lineTmp.getIntercept();
- data[1][count] = lineTmp.getSlope();
- count++;
- }
- //addSeries里的第一个参数我还不太懂,从生成的图表看,就是图表下的说明文字而已
- dataset.addSeries("table", data);
- return dataset;
- }
- //生成图表对象
- public static JFreeChart createChart(XYDataset xydataset, String title, String xAxis, String yAxis) {
- JFreeChart scatterChart = ChartFactory.createScatterPlot(title, xAxis, yAxis, xydataset, PlotOrientation.VERTICAL, true, false, false);
- return scatterChart;
- }
- //根据图表对象,设置图像参数并画图,这里很重要,稍不注意,图里的文字就全是乱码了
- public static void drawScatterChart(JFreeChart scatterChart, String title, String noDataMsg) {
- //title, legend, plot 三个部分设置字体的方法分别如下:
- TextTitle textTitle = scatterChart.getTitle();
- textTitle.setFont(new Font("宋体", Font.BOLD, 20));
- LegendTitle legend = scatterChart.getLegend();
- if (legend != null)
- {
- legend.setItemFont(new Font("宋体", Font.BOLD, 20));
- }
- XYPlot scatterPlot = scatterChart.getXYPlot();
- scatterPlot.setNoDataMessage(noDataMsg);
- //以下三行是画图
- ChartFrame scatterFrame = new ChartFrame(title,scatterChart);
- scatterFrame.pack();
- scatterFrame.setVisible(true);
- }
总的来说,还是蛮简单的,要画其他的图去查一下API就可以了。
转载于:https://blog.51cto.com/hector/926904
使用JFreeChart绘制散点图相关推荐
- R语言使用ggplot2包的快速可视化函数qplot绘制散点图实战
R语言使用ggplot2包的快速可视化函数qplot绘制散点图实战 目录 R语言使用ggplot2包的快速可视化函数qplot绘制散点图实战 #仿真数据
- R语言plotly可视化:使用PCA算法进行数据降维、使用plotly可视化PCA所有的主成分绘制散点图矩阵、降维后的两个(三个)核心主成分的二维、三维可视化图形、方差解释的量、载荷图等
R语言plotly可视化:使用PCA算法进行数据降维.使用plotly可视化PCA所有的主成分绘制散点图矩阵.降维后的两个(三个)核心主成分的二维.三维可视化图形.方差解释的量.载荷图等 目录
- R语言使用ggplot2包的快速可视化函数qplot绘制散点图(设置每个数据点的文本标签信息)实战
R语言使用ggplot2包的快速可视化函数qplot绘制散点图(设置每个数据点的文本标签信息)实战 目录 R语言使用ggplot2包的快速可视化函数qplot绘制散点图(设置每个数据点的文本标签信息) ...
- R语言使用ggplot2包的快速可视化函数qplot绘制散点图(添加平滑曲线与标准差带)实战
R语言使用ggplot2包的快速可视化函数qplot绘制散点图(添加平滑曲线与标准差带)实战 目录 R语言使用ggplot2包的快速可视化函数qplot绘制散点图(添加平滑曲线与标准差带)实战 #仿真 ...
- R语言使用ggplot2包的快速可视化函数qplot绘制散点图(分类变量分组配色、连续值程度配色)实战
R语言使用ggplot2包的快速可视化函数qplot绘制散点图(分类变量分组配色.连续值程度配色)实战 目录 R语言使用ggplot2包的快速可视化函数qplot绘制散点图(分类变量分组配色.连续值程 ...
- R语言使用ggplot2包的快速可视化函数qplot绘制散点图(设置数据点的形状、大小)实战
R语言使用ggplot2包的快速可视化函数qplot绘制散点图(设置数据点的形状.大小)实战 目录 R语言使用ggplot2包的快速可视化函数qplot绘制散点图(设置点的形状.大小)实战
- plotly基于dataframe数据绘制散点图(scatter plot)
plotly基于dataframe数据绘制散点图(scatter plot) # 读取沪深300和上证50的数据: # 绘制散点图: import plotly as py # 导入plotly库并命 ...
- R绘制散点图以及带圈定的散点图(Scatterplot With Encircling)
R绘制散点图以及带圈定的散点图(Scatterplot With Encircling) 数据分析最常用的图无疑是散点图.每当你想了解两个变量之间关系的性质时,第一选择总是散点图. 散点图(scatt ...
- Python matplotlib 绘制散点图 还不收藏起来
复习回顾 我们在往前几期中对matplotlib模块学习,对常用的反映数据变化的折线图,对比数据类型差异的柱状图和反应数据频率分布情况的直方图. 往前内容快速查看 超详细的Python matplot ...
最新文章
- EasyBridge:一种简单的js-bridge设计方案
- C++ 判断两个立方体是否相等
- 创建ACFS集群文件系统(命令方式)
- LDA入门级学习笔记
- docker php 多端口,docker使用之php-fpm+apache多容器的xdebug和phpstorm的配置
- norminv函数是什么matlab,norminv函数的用法,表示的是什么意思
- 实现AJAX的基本步骤
- 对HTTP/2 支持
- Signals Slots(Qt5)
- 【C++基础学习】引起类模板被实例化情形总结
- Spark调优 shuffle调优
- Python 操作 PDF 的几种方法
- CDOJ 1157 数列(seq) 分块+线段树
- LaTex 常用的数学字体
- 编程求1平方+2平方+...+n平方
- 设置Windows静态路由表
- 手写汉字笔顺轨迹提取(已开源)
- 大数据开发课程:大数据开发培训课程
- Navicate无法连接,提示is not allowed to connect to this mysql server
- CAN通讯原理简介(一)