JavaFX学习之Chart

[b]Chart[/b] 分piechart 和XYChart
再看看chart的一些通用方法:

setLegendVisible(boolean value)
setLegendSide(Side value)
setLegend(Node value)

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

[b]XYChart[/b] 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, 也就行颜色填充

[b]AreaChart[/b] 区域图表

[b]BarChart[/b] 条状图表

[b]StackedBarChart[/b] 栈形条状图表

方法:

setBarGap(double value) //设置同一类型bar之间的间距
setCategoryGap(double value) //设置不同类型之间的间距

[b]BubbleChar[/b] 泡型图表,可以对单元泡设置半径

[b]LineChart[/b] 线形图表
方法:

setCreateSymbols(boolean value) //是否设置符号,也就是那些点。false则显示连贯的直线,没有点了。

[b]PieChart and PieChart.Data[/b]饼图有些不同,一块块没有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出现的位置。


[b]ScatterChart[/b] 散布图表
[b]ScatterArrayChart[/b]
[b]StackedAreaChart[/b]
[b]StackedBarChart[/b]
[b]XYChart.Data[/b] 单元数据存放坐标值
XYChart.Data(X xValue, Y yValue, java.lang.Object extraValue) // 坐标值,和其它值,因为有些图表中,单个item不只有坐标值,而且还有其它值,如泡图表中,每一个泡还有半径这个值,这样显示大小就不同
[b]XYChart.Series[/b]

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 展示在该节点上

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


[b]Axis[/b] 坐标
[img]http://dl.iteye.com/upload/attachment/0079/3019/7e9fbc91-51b2-301a-b62f-3638a766064c.png[/img]
坐标上的一些内容

[b]Axis.TickMark[/b]
[b]CategoryAxis[/b] 文字坐标
[b]NumberAxis[/b] 数字坐标

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

[b]NumberAxis.DefaultFormatter[/b]
[b]ValueAxis[/b]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值