`

JavaFX学习之Chart

阅读更多
   Chart 分piechart 和XYChart
再看看chart的一些通用方法:
setLegendVisible(boolean value) 
setLegendSide(Side value)
setLegend(Node value)  

以上都是设置图标,chart除图形外还有个图标。设置是否可见,设置显示位置,设置自定义图标。

   XYChart  x,y轴图表,使用很简单,首先是创建需要什么样的图表,然后再选择的x,y轴用哪种格式,一般都是CategoryAxis,NumberAxis 文字和数字。然后在添加数据XYChart.Series<X, Y>相当于list, XYChart.Data<X,Y>单元数据,通过series.getData().addAll()添加。看一个简单例子:
   
AreaChart chart = new AreaChart(new NumberAxis(0,10000,2500), new NumberAxis(0,1000,200));
        chart.setLegendVisible(false);
        chart.setHorizontalGridLinesVisible(false);
        chart.setVerticalGridLinesVisible(false);
        chart.setAlternativeColumnFillVisible(false);
        chart.setAlternativeRowFillVisible(false);
        final XYChart.Series<Number, Number> series = new XYChart.Series<Number, Number>();
        series.getData().addAll(
            new XYChart.Data<Number,Number>(0       ,950),
            new XYChart.Data<Number,Number>(2000    ,100),
            new XYChart.Data<Number,Number>(5000    ,200),
            new XYChart.Data<Number,Number>(7500    ,180),
            new XYChart.Data<Number,Number>(10000   ,100)
        );
        chart.getData().add(series);

方法:
   
setHorizontalGridLinesVisible(boolean value)    //默认true, 中间显示的水平线是否显示
setHorizontalZeroLineVisible(boolean value)     //默认true
setVerticalGridLinesVisible(boolean value)      //默认true  中间显示的垂直线是否显示
setVerticalZeroLineVisible(boolean value)       //默认true
setAlternativeColumnFillVisible(boolean value)  //默认false, 列颜色填充
setAlternativeRowFillVisible(boolean value)     //默认true, 也就行颜色填充  

   AreaChart 区域图表
  
   BarChart 条状图表

   StackedBarChart  栈形条状图表
  
   方法:
      
   setBarGap(double value)  //设置同一类型bar之间的间距
   setCategoryGap(double value)  //设置不同类型之间的间距
   

   BubbleChar 泡型图表,可以对单元泡设置半径
  
   LineChart  线形图表 
   方法:
      
   setCreateSymbols(boolean value)  //是否设置符号,也就是那些点。false则显示连贯的直线,没有点了。
    

   PieChart and PieChart.Data饼图有些不同,一块块没有x,y轴之分。
PieChart.Data代表一块,并为它设置比率。看下面例子:
		PieChart pc = new PieChart();
		pc.setTitle("city");
		ol.addAll(new PieChart.Data("beijing", 10),new PieChart.Data("shanghai", 20),new PieChart.Data("shenzhen", 30),new PieChart.Data("guangzhou", 40));
		pc.setData(ol);
		final Text caption = new Text("");
        caption.setFill(Color.DARKORANGE);
        caption.setStyle("-fx-font: 24 arial;");
		for(final PieChart.Data data:ol){
			data.getNode().setOnMouseClicked(new EventHandler<MouseEvent>() {
				@Override
				public void handle(MouseEvent event) {
					caption.setTranslateX(event.getSceneX());
					caption.setTranslateY(event.getSceneY());
					caption.setText(String.valueOf(data.getPieValue())+"%");
				}
			});
		}
		pc.setLabelLineLength(10);
		pc.setLabelsVisible(true);   //不知道是什么		pc.setStartAngle(0);

数据由PieChart.Data构成
设置labelline那条线的长度
设置开始的角度,也就是第一个data出现的位置。


   ScatterChart  散布图表
   ScatterArrayChart
   StackedAreaChart
   StackedBarChart
   XYChart.Data  单元数据存放坐标值
   XYChart.Data(X xValue, Y yValue, java.lang.Object extraValue)  // 坐标值,和其它值,因为有些图表中,单个item不只有坐标值,而且还有其它值,如泡图表中,每一个泡还有半径这个值,这样显示大小就不同
   XYChart.Series
final Path strokePath = (Path)((Group)series.getNode()).getChildren().get(1);
final Path fillPath = (Path)((Group)series.getNode()).getChildren().get(0);

获取strokePath和fillPath。strokePath即是显示的那条线,fillPath即是填充的区域,由此你可以在这里改变chart的显示效果。
属性:
chart  所属的chart
data   包含的数据
name   展示的名字
node   展示在该节点上

这片文章有个例子,可以借鉴
http://fxexperience.com/2012/01/curve-fitting-and-styling-areachart/


   Axis 坐标

坐标上的一些内容

   Axis.TickMark
   CategoryAxis 文字坐标
   NumberAxis  数字坐标
  
   NumberAxis(java.lang.String axisLabel, double lowerBound, double upperBound, double tickUnit)  //设置坐标名,开始值,结束值,单元最小值
    

   NumberAxis.DefaultFormatter
   ValueAxis
  
  • 大小: 12.3 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics