JavaFX学习之Chart 博客分类: javafx javafx图标chart
程序员文章站
2024-03-20 11:42:34
...
Chart 分piechart 和XYChart
再看看chart的一些通用方法:
以上都是设置图标,chart除图形外还有个图标。设置是否可见,设置显示位置,设置自定义图标。
XYChart x,y轴图表,使用很简单,首先是创建需要什么样的图表,然后再选择的x,y轴用哪种格式,一般都是CategoryAxis,NumberAxis 文字和数字。然后在添加数据XYChart.Series<X, Y>相当于list, XYChart.Data<X,Y>单元数据,通过series.getData().addAll()添加。看一个简单例子:
方法:
AreaChart 区域图表
BarChart 条状图表
StackedBarChart 栈形条状图表
方法:
BubbleChar 泡型图表,可以对单元泡设置半径
LineChart 线形图表
方法:
PieChart and PieChart.Data饼图有些不同,一块块没有x,y轴之分。
PieChart.Data代表一块,并为它设置比率。看下面例子:
数据由PieChart.Data构成
设置labelline那条线的长度
设置开始的角度,也就是第一个data出现的位置。
ScatterChart 散布图表
ScatterArrayChart
StackedAreaChart
StackedBarChart
XYChart.Data 单元数据存放坐标值
XYChart.Data(X xValue, Y yValue, java.lang.Object extraValue) // 坐标值,和其它值,因为有些图表中,单个item不只有坐标值,而且还有其它值,如泡图表中,每一个泡还有半径这个值,这样显示大小就不同
XYChart.Series
获取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.DefaultFormatter
ValueAxis
再看看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