散点图的java实现_JAVA-4 JAVA 作图之scatterplot 散点图的绘制 2020-07-18

本文介绍了如何使用Java实现散点图的绘制。通过创建一个`Main`类,利用Graphics2D进行画图操作,包括绘制坐标轴和数据点。代码示例中展示了基于给定数据集生成散点图的过程,最终结果显示为一张散点分布图。
摘要由CSDN通过智能技术生成

作图用的数据为:

4f61a5eeef23

image.png

具体实现过程和说明如下:

import java.awt.*;

import java.awt.geom.*;

import javax.swing.*;

public class Main extends JPanel {

int[] data = {

21, 14, 18, 11, 86, 88, 74, 87, 54, 77,

61, 55, 48, 60, 49, 36, 38, 27, 20, 18

};//输入对应的数据,是integer

final int PAD = 20;

protected void paintComponent(Graphics g) {

super.paintComponent(g);

Graphics2D g2 = (Graphics2D)g;

g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,

RenderingHints.VALUE_ANTIALIAS_ON);

int w = getWidth();

int h = getHeight();

// Draw ordinate.

g2.draw(new Line2D.Double(PAD, PAD, PAD, h-PAD));

// Draw abcissa.

g2.draw(new Line2D.Doubl

app.title = '气泡图'; var data = [ [['2015/1/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/1/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/2/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/3/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/4/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/5/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/6/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/7/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/8/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/9/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/10/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/11/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2015/12/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2016/5/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2017/6/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2018/9/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2019/2/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2019/5/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"'], ['2019/7/1',10,'0','系列"游戏1"点"2015/01/01(2015/01/01,0.6)"']], [['2015/1/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/1/6',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/2/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/3/24',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/4/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/5/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/6/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/7/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/8/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/9/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/10/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/11/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/12/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2016/1/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2017/1/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2018/1/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2019/1/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2019/1/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2019/1/1',20,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"']], [['2015/1/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/2/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/3/23',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/4/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/5/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/6/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/7/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/8/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/9/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/10/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/11/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/12/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2016/1/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2016/2/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2016/3/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2016/4/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2017/5/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2018/6/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2019/7/1',30,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"']], [['2015/1/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/2/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/3/23',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/4/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/5/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/6/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/7/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/8/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/9/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/10/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/11/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2015/12/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2016/1/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2016/2/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2016/3/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2016/4/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2017/5/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2018/6/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"'], ['2019/7/1',40,'0','系列"游戏2"点"2015/01/01(2015/01/01,0.6)"']], [['2015/1/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/2/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/3/23',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/4/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/5/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/6/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/7/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/8/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/9/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/10/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/11/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2015/12/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2016/1/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2016/2/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2016/3/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2016/4/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2017/5/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2019/6/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"'], ['2019/7/1',50,'0','系列"游戏3"点"2015/01/01(2015/01/01,0.6)"']], [['2015/1/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/2/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/3/23',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/4/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/5/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/6/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/7/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/8/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/9/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/10/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/11/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/12/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2016/1/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2016/2/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2016/3/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2016/4/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2017/5/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2018/6/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2019/7/1',60,'0','系列"在游戏2范围内"点"2015/01/01(2015/01/01,0.6)"']], [['2015/1/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/2/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/3/23',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/4/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/5/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/6/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/7/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/8/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/9/14',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/10/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/11/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2015/12/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2016/1/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2016/2/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2016/3/16',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2016/4/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2017/5/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2018/6/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"'], ['2019/7/1',70,'0','系列"在游戏3范围内"点"2015/01/01(2015/01/01,0.6)"']] ]; option = { backgroundColor: new echarts.graphic.RadialGradient(0.3, 0.3, 0.8, [{ offset: 0, color: '#f7f8fa' }, { offset: 1, color: '#cdd0d5' }]), title: { text: '2015年装备重大游戏1与/游戏2情况统计', subtext:'', x:'center', y:'top', textAlign:'center' }, legend: { orient: 'horizontal', // 'vertical' x: 'center', // 'center' | 'left' | {number}, y: 'bottom', // 'center' | 'bottom' | {number} //backgroundColor: '#fff', // borderColor: 'rgba(178,34,34,0.8)', // borderWidth: 4, padding: 5, // [5, 10, 15, 20] itemGap: 20, data: ['游戏1', '游戏2', '游戏3', '游戏2', '游戏3', '在游戏2范围内', '在游戏3范围内'] }, xAxis: { type: 'time', name:'时间', splitLine: { show: true, lineStyle:{ color: ['#315070'], width: 1, type: 'solid' }   } }, yAxis: { type: 'value', name:'类型', axisLabel:{ formatter : function(params){ return ""; } }, splitLine: { show: true, lineStyle:{ color: ['#4c5055'], width: 1, show:false, type: 'solid' }   } }, series: [{ //图形 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow' name: '游戏1', data: data[0], type: 'scatter', symbol:"triangle", symbolSize:12, label: { emphasis: { show: true, formatter: function (param) { return param.data[3]; }, position: 'top' } }, itemStyle: { normal: { shadowBlur: 10, shadowColor: 'rgba(80, 56, 50, 0.5)', shadowOffsetY: 5, color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{ offset: 0, color: 'rgb(76, 80, 85)' }, { offset: 1, color: 'rgb(85, 85, 72)' }]) } } }, { name: '游戏2', data: data[1], type: 'scatter', symbol:"rect", symbolSize: 12, label: { emphasis: { show: true, formatter: function (param) { return param.data[3]; }, position: 'top' } }, itemStyle: { normal: { shadowBlur: 10, shadowColor: 'rgba(250, 196, 122, 0.5)', shadowOffsetY: 5, color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{ offset: 0, color: 'rgb(250, 139, 35)' }, { offset: 1, color: 'rgb(246, 144, 25)' }]) } } }, { name: '游戏3', data: data[2], type: 'scatter', symbol:"rect", symbolSize:12, label: { emphasis: { show: true, formatter: function (param) { return param.data[3]; }, position: 'top' } }, itemStyle: { normal: { shadowBlur: 10, shadowColor: 'rgba(25, 100, 150, 0.5)', shadowOffsetY: 5, color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{ offset: 0, color: 'rgb(63, 167, 228)' }, { offset: 1, color: 'rgb(62, 157, 207)' }]) } } }, { name: '游戏2', data: data[3], type: 'scatter', symbol:"circle", symbolSize:12, label: { emphasis: { show: true, formatter: function (param) { return param.data[3]; }, position: 'top' } }, itemStyle: { normal: { shadowBlur: 10, shadowColor: 'rgba(250, 196, 122, 0.5)', shadowOffsetY: 5, color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{ offset: 0, color: 'rgb(250, 139, 35)' }, { offset: 1, color: 'rgb(246, 144, 25)' }]) } } }, { name: '游戏3', data: data[4], type: 'scatter', symbol:"circle", symbolSize: 12, label: { emphasis: { show: true, formatter:15, position: 'top' } }, itemStyle: { normal: { shadowBlur: 10, shadowColor: 'rgba(25, 100, 150, 0.5)', shadowOffsetY: 5, color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{ offset: 0, color: 'rgb(63, 167, 228)' }, { offset: 1, color: 'rgb(62, 157, 207)' }]) } } }, { name: '在游戏2范围内', data: data[5], type: 'scatter', symbol:"diamond", symbolSize: 12, label: { emphasis: { show: true, formatter: function (param) { return param.data[3]; }, position: 'top' } }, itemStyle: { normal: { shadowBlur: 10, shadowColor: 'rgba(250, 196, 122, 0.5)', shadowOffsetY: 5, color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{ offset: 0, color: 'rgb(250, 139, 35)' }, { offset: 1, color: 'rgb(246, 144, 25)' }]) } } }, { name: '在游戏3范围内', data: data[6], type: 'scatter', symbol:"diamond", symbolSize: 12, label: { emphasis: { show: true, formatter: function (param) { return param.data[3]; }, position: 'top' } }, itemStyle: { normal: { shadowBlur: 10, shadowColor: 'rgba(25, 100, 150, 0.5)', shadowOffsetY: 5, color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{ offset: 0, color: 'rgb(63, 167, 228)' }, { offset: 1, color: 'rgb(62, 157, 207)' }]) } } } ] };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值