欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JavaFX学习之Chart 博客分类: javafx javafx图标chart 

程序员文章站 2024-03-20 11:42:34
...
   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 坐标
JavaFX学习之Chart
            
    
    博客分类: javafx javafx图标chart 
坐标上的一些内容

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

   NumberAxis.DefaultFormatter
   ValueAxis
  
  • JavaFX学习之Chart
            
    
    博客分类: javafx javafx图标chart 
  • 大小: 12.3 KB