我有一个jfreechart应用程序,它在气泡图中显示三个变量的值。我有问题,使图表显示的泡泡。只有当你试图缩小时,它才是可见的。但是如果Ii将第三列/数组中的值更改为整数,如1、2、3、4、5,气泡开始变得可见。拜托谁能帮帮我。我希望气泡有一个特定的大小为所有绘制的点。
下面是我的源代码:
package javaapplication2;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Shape;
import javax.swing.JPanel;
import org.jfree.chart.*;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.data.xy.DefaultXYZDataset;
import org.jfree.data.xy.XYZDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import org.jfree.util.ShapeUtilities;
public class JavaApplication2 extends ApplicationFrame {
public JavaApplication2(String s) {
super(s);
JPanel jpanel = createDemoPanel();
jpanel.setPreferredSize(new Dimension(560, 370));
setContentPane(jpanel);
}
private static JFreeChart createChart(XYZDataset xyzdataset) {
JFreeChart jfreechart = ChartFactory.createBubbleChart(
"AGE vs WEIGHT vs WORK",
"Weight",
"AGE",
xyzdataset,
PlotOrientation.HORIZONTAL,
true, true, false);
XYPlot xyplot = (XYPlot) jfreechart.getPlot();
xyplot.setForegroundAlpha(0.65F);
XYItemRenderer xyitemrenderer = xyplot.getRenderer();
xyitemrenderer.setSeriesPaint(0, Color.blue);
NumberAxis numberaxis = (NumberAxis) xyplot.getDomainAxis();
numberaxis.setLowerMargin(0.2);
numberaxis.setUpperMargin(0.5);
NumberAxis numberaxis1 = (NumberAxis) xyplot.getRangeAxis();
numberaxis1.setLowerMargin(0.8);
numberaxis1.setUpperMargin(0.9);
return jfreechart;
}
public static XYZDataset createDataset() {
DefaultXYZDataset defaultxyzdataset = new DefaultXYZDataset();
double ad[] = {426081.759473, 426095.238564, 426109.490941, 426121.967623, 426130.564392, 426138.69481};
double ad1[] = {113322.88289, 113271.915074, 113221.586484, 113172.511533, 113128.370338, 113085.254484};
double ad2[] = {0.460819752574555, 0.850726080807893, 0.571903719860673, -0.013658463858901, -0.231945599223777, -0.256564887488579};
double ad3[][] = {ad, ad1, ad2};
defaultxyzdataset.addSeries("Series 1", ad3);
return defaultxyzdataset;
}
public static JPanel createDemoPanel() {
JFreeChart jfreechart = createChart(createDataset());
ChartPanel chartpanel = new ChartPanel(jfreechart);
chartpanel.setDomainZoomable(true);
chartpanel.setRangeZoomable(true);
return chartpanel;
}
public static void main(String args[]) {
JavaApplication2 bubblechart = new JavaApplication2("Bubble Chart_frame");
bubblechart.pack();
RefineryUtilities.centerFrameOnScreen(bubblechart);
bubblechart.setVisible(true);
}
}
默认情况下,chartfactory.createBubbleChart()
指定一个XYBubbleRenderer
具有Scale_on_range_axis
,但是x和y数据比z数据大几个数量级。因此,没有像素是可见的。您可能需要对数据进行缩放以获得所需的效果。您可以通过使用默认呈现器并使用上下文菜单(右键单击)在两个轴上放大来查看对数据的影响:
XYBubbleRenderer renderer = new XYBubbleRenderer(); //SCALE_ON_BOTH_AXES
xyPlot.setRenderer(renderer);
在下面的参考示例中,我在垂直
图中使用了更简单的数据来简化实验。请注意,(1,1)、(2,2)和(3,3)处气泡的大小与z坐标的比值为:2/3:3:4/3
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JPanel;
import org.jfree.chart.*;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYBubbleRenderer;
import org.jfree.data.xy.DefaultXYZDataset;
import org.jfree.data.xy.XYZDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import static org.jfree.chart.renderer.xy.XYBubbleRenderer.*;
/** @see http://stackoverflow.com/a/41575283/230513 */
public class BubbleChartTest extends ApplicationFrame {
public BubbleChartTest(String s) {
super(s);
JPanel jpanel = createDemoPanel();
jpanel.setPreferredSize(new Dimension(560, 370));
setContentPane(jpanel);
}
private static JFreeChart createChart(XYZDataset xyzDataset) {
JFreeChart jfreechart = ChartFactory.createBubbleChart(
"X vs Y vs Z", "X", "Y", xyzDataset,
PlotOrientation.VERTICAL, true, true, false);
XYPlot xyPlot = (XYPlot) jfreechart.getPlot();
xyPlot.setForegroundAlpha(0.5F);
XYBubbleRenderer renderer = new XYBubbleRenderer(SCALE_ON_BOTH_AXES);
xyPlot.setRenderer(renderer);
renderer.setSeriesPaint(0, Color.blue);
NumberAxis domain = (NumberAxis) xyPlot.getDomainAxis();
domain.setLowerMargin(0.2);
domain.setUpperMargin(0.4);
NumberAxis range = (NumberAxis) xyPlot.getRangeAxis();
range.setLowerMargin(0.2);
range.setUpperMargin(0.4);
return jfreechart;
}
public static XYZDataset createDataset() {
DefaultXYZDataset dataset = new DefaultXYZDataset();
double a[][] = {
{1, 2, 3},
{1, 2, 3},
{2 / 3d, 3 / 3d, 4 / 3d}
};
dataset.addSeries("Series", a);
return dataset;
}
public static JPanel createDemoPanel() {
JFreeChart chart = createChart(createDataset());
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setDomainZoomable(true);
chartPanel.setRangeZoomable(true);
return chartPanel;
}
public static void main(String args[]) {
BubbleChartTest test = new BubbleChartTest("Bubble Chart");
test.pack();
RefineryUtilities.centerFrameOnScreen(test);
test.setVisible(true);
}
}
定义 气泡组件。 图片展示 代码演示 import Popover from 'pile/dist/components/popover' const {Tooltip} = Popover <Tooltip overlay={"说明文字"} placement='left' isShow={popleftshow} idName='newIndex' setTooltipC
气泡图以气泡的形式可视化度量和维度。 气泡图是一组圆圈。维度字段的每个值表示圆圈,度量值表示这些圆圈的大小。 设置气泡的颜色以区分维度中存在的成员。以下是创建气泡图的步骤。 例如,考虑数据源(如样本超市),以及是否要查找不同出货模式的利润。然后, 第1步:拖动度量利润(Profit)并拖放到“大小(Size)”窗格中。 第2步:拖动维度Ship Mode并放入“Labels”窗格。 第3步:同时将
主要内容:什么是JFreeChart 气泡图,JFreeChart 气泡图的示例什么是JFreeChart 气泡图 气泡图以三维方式表示信息。此图表是散点图(XY 图表)的变体,其中数据点由气泡替换,数据的附加维度(z 值)以气泡的大小表示。 下图显示了 JFreeChart 库中包含的气泡图的一些演示版本: JFreeChart 气泡图的示例 让我们考虑以下气泡图的示例数据。 国家 汽车 公交车 卡车 印度 40 65 70 美国 30 20 50 中国 80 50 80
本章节我们将为大家介绍 Highcharts 的气泡图。 我们在前面的章节已经了解了 Highcharts 配置语法。接下来让我们来看下 Highcharts 的其他配置。 配置 chart 配置 配置 chart 的 type 为 'bubble' 。chart.type 描述了图表类型。默认值为 "line"。 chart.zoomType 属性可配置图表放大 ,通过拖动鼠标进行缩放,沿x轴或
嗨,我用冒泡排序查看了其他帖子,但解决方案在我的例子中不起作用:所以算法在我循环时重复了几次之后才起作用。但我如何在不使用输入的情况下做到这一点?这是我的代码,你知道我的意思:
气泡图用于同时显示三维数据。气泡的位置由前两个维度以及相应的水平和垂直轴线确定。第三个维度由单个气泡的大小来表示。 new Chart(document.getElementById("chartjs-6"),{"type":"bubble","data":{"datasets":[{"label":"First Dataset","data":[{"x":20,"y":30,"r":15},{"