MPAndroidChart MarkerView 多cad样条曲线加点 点击一个点显示多cad样条曲线加点上的值 值为当前点Y轴的值,怎么做?

没有更多推荐了,
不良信息举报
举报内容:
MPAndroidChart使用详解
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!使用mpandroidchart 画折线图时,当某个点的值超过设置的值时,那个点变红色?这个要如何实现?_百度知道
使用mpandroidchart 画折线图时,当某个点的值超过设置的值时,那个点变红色?这个要如何实现?
我有更好的答案
但是画出来的时候最后一根Y轴现却显示不出来,而且X轴的坐标超出了屏幕,被裁切了.
采纳率:83%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。MPAndroidChart使用API - 简书
MPAndroidChart使用API
设置不同的图表
1. 折线图 LineChart
2. 条形图 BarChart
3. 条形折线图 Combined-Chart
4. 圆饼图 PieChart
5. 雷达图 ScatterChart
6. K线图 CandleStickChart
7. 泡泡图 BubbleChart
8. 网状图 RadarChart
一、获取控件
mChart = (LineChart) findViewById(R.id.chart);
二、给控件绑定数据
lineChart.setDescription("线性统计图");//设置统计图标注
mChart.setData(getLineData());
三、设置数据
private LineData getLineData(){
final int DATA_COUNT = 5;
//设置折线图横跨距离
LineDataSet dataSetA = new LineDataSet( getChartData(DATA_COUNT, 1), "A");
//设置折线数据 getChartData返回一个List&Entry&键值对集合标识 折线点的横纵坐标,"A"代表折线标识
LineDataSet dataSetB = new LineDataSet( getChartData(DATA_COUNT, 2), "B");
List&ILineDataSet& dataSets = new ArrayList&&();
dataSets.add(dataSetA);
dataSets.add(dataSetB);
LineData data = new LineData( getLabels(DATA_COUNT), dataSets);
// 返回LineData类型数据,该类型由标识X轴单位 List&String&的 集合和一个标识折线数据的List&ILineDataSet&组成
四、设置X轴的单位与折线的数据
private List&Entry& getChartData(int count, int ratio){
List&Entry& chartData = new ArrayList&&();
for(int i=0;i&i++){
chartData.add(new Entry( i*2*ratio, i));
return chartD
//利用循环生成了(0,0) (2,1) (4,2) (6,3) (8,4)
//(0,0) (4,1) (8,2) (12,3) (16,4) 这两组折线坐标 组成List&Entry&返回
private List&String& getLabels(int count){
List&String& chartLabels = new ArrayList&&();
for(int i=0;i&i++) {
chartLabels.add("X" + i);
return chartL
//生成横坐标的单位显示,(x0 x1 x2 x3 x4)这样的List&String&集合返回
对于List&Entry&和LineData均有添加和移除数据的操作方法
addEntry(Entry e) :在 List 最後增加 Entry
removeFirst() :移除第一個 Entry
removeLast() :移除最後一個 Entry
removeEntry(Entry e) :移除指定的 Entry Object
removeEntry(int xIndex) :移除指定 Index 的 Entry
addEntry(Entry e, int dataSetIndex) :新增 Entry 到指定的 DataSet
addDataSet(DataSet d) :增加一個 DataSet
removeEntry(Entry e, int dataSetIndex) :移除指定的 DataSet 一個 Entry
removeEntry(int xIndex, int dataSetIndex) :移除指定的 DataSet 中的某 Index 的 Entry
removeDataSet(DataSet d) :移除一個 DataSet
removeDataSet(int index) :移除指定 Index 的 DataSet
再完成添加和删除操作之后,必须使用notifyDataSetChanged()和invalidate()方法来刷新View
mChart.notifyDataSetChanged();
mChart.invalidate();
五、设置标识及折线的颜色用以区别
dataSetA.setColor(要设置的颜色);
dataSetB.setColor(要设置的颜色);
六、设置每一个Entry点的样式
dataSetA.setCircleColor(要设置的颜色);
//可以设置Entry节点的颜色
dataSetA.setCircleSize(10f);
//设置节点的大小
dataSetA.setDrawCircleHole(true); //是否定制节点圆心的颜色,若为false,则节点为单一的同色点,若为true则可以设置节点圆心的颜色
dataSetA.setCircleColorHole(Color.GREEN);
//设置节点圆心的颜色
七、对图表线条进行样式定制
dataSetA.setLineWidth(10f); //设置线条宽度
dataSetB.setDrawCubic(true); //修改线条为平滑
dataSetB.enableDashedLine(5f, 5f, 0f); //设置线条为虚线 1.线条宽度2.间隔宽度3.角度
dataSetB.setCubicIntensity(20f);//曲線彎曲強度
八、 HightLight当点击节点时,将会出现与节点水平和垂直的两条线,可以对其进行定制
dataSetA.setHighlightLineWidth(8f); //设置线条宽度
dataSetA.setHighLightColor(Color.CYAN);
//设置线条颜色
若要单独定制某一方向上的线,可以先把关闭线条hightlight显示
dataSetA.setDrawHighlightIndicators(false);//关闭heightlight
dataSetA.setDrawVerticalHighlightIndicator(true); //或者使用
dataSetA.setDrawHorizontalHighlightIndicator(true);//来打开单独某一方向的hightlight
九、Fill填充,可以将折线图一下部分用颜色填满
dataSetA.setDrawFilled( boolean );//设置是否开启填充,默认为false
多个DataSet同时填充时,只显示最后填充的那个DataSet,其余的被覆盖
dataSetA.setFillColor(Color.RED);//设置填充颜色
dataSetA.setFillAlpha(85);//设置填充区域透明度,默认值为85
十、格式化Label中的数值
ValueFormat 可以设定给dataset(单一的一条线)或 Linedata(所有的线),除了自定义 ValueFormatter 外,作者提供两个定义好的 ValueFormatter
LargeValueFormatter:超过一千会变成1K
PercentFormatter:显示成百分比,常用于 PieChart饼图
dataSetA.setValueFormatter(new LargeValueFormatter());
或者可以自定义一個 ValueFormatter,如:
新建类实现ValueFormatter接口,重写getFormattedValue方法
public String getFormattedValue(float value, Entry entry, int dataSetIndex,ViewPortHandler viewPortHandler) {
/* ValueFormatter 一定要实现该方法
* 此方法會把 value 跟 entry 传过来,在该方法中做一些逻辑上的处理
回传的 format 字串将会显示在在 Label 上 */
return mFormat.format("$" + value);
十一、坐标轴Axis
Axis分为x轴和y轴
x轴 只有一个,而y轴分为左右两条轴线
XAxis mXAxis = lineChart.getXAxis();
获取y轴:有两种方法,这两种方法均可
// Method 1
YAxis mLeftYAxis =lineChart.getAxisLeft();
YAxis mRightYAxis = lineChart.getAxisRight();
// Method 2
YAxis mLeftYAxis = lineChart.getAxis(YAxis.AxisDependency.LEFT);
YAxis mRightYAxis = lineChart.getAxis(YAxis.AxisDependency.RIGHT);
如果不想要出现任何 X 或 Y 轴的东西,可以 setEnabled(false)来关闭轴线
X轴出现的位置有五个:
设置 mXAxis 的位置,可以选择以下位置:
TOP 默认          
TOP_INSIDE        顶端,label显示在x下方
         
BOTTOM_INSIDE     
底部,Label显示在X轴上方
BOTH_SIDED       上下均显示
XAxis mXAxis = lineChart.getXAxis();
mXAxis.setPosition(XAxis.XAxisPosition.BOTH_SIDED); //设置X轴位置
上下均显示
Label标签的设置
mXAxis.setDrawLabels(false); // 显示 或 隐藏
labelmXAxis.setLabelsToSkip(1); // 要略过几个 Label才会显示一个
LabelmXAxis.resetLabelsToSkip(); //重新设定略过 Label 的设定
mXAxis.setSpaceBetweenLabels(20); // 每个列 的间距,default=4
mXAxis.setTextColor(颜色); //设置Label标签的颜色
mXAxis.setTextSize(12);//设置字体大小
mXAxis.setTypeface();//设置字体
线条设置------Line分为两种 GridLine和AxisLine
GridLine:背景中每一列与X轴垂直的线
AxisLine :
与X轴重合的线
(Y轴同样适用)
GridLine设置:
mXAxis.setGridColor(颜色);
mXAxis.setGridLineWidth(3); //设置垂直线的 宽度
mXAxis.enableGridDashedLine(10f, 5f, 0f);
//设置垂直线为虚线,(长度,间隔,角度)
AxisLine设置:
mXAxis.setAxisLineWidth(5f);
mXAxis.setAxisLineColor(颜色);
如果不想显示线条可以关闭:
GridLinemXAxis.setDrawGridLines(false);
AxisLinemXAxis.setDrawAxisLine(false);
虚线的GridLine
y轴有左右两条,大部分时候两边需要同时设定,否則两边显示的数据会不一样,或是 Label 数值线没有对齐的状况
y轴可以设置最大最小值
mLeftYAxis.setStartAtZero(false);
mRightYAxis.setStartAtZero(false);//设置最大最小值需要先将从0开始关闭
mLeftYAxis.setAxisMaxValue(3);
mRightYAxis.setAxisMaxValue(3);// 设置最小值
mLeftYAxis.setAxisMinValue(-5f); //如果设置的最小值不是负数就看不到效果
mRightYAxis.setAxisMinValue(-5f);
//使用reset则可以将坐标轴还原
mLeftYAxis.resetAxisMaxValue();
mRightYAxis.resetAxisMaxValue()
如果有特殊需求,只想显示最大/小值,可以设置setShowOnlyMinMax,这个不受setStartAtZero的影响,不需要设为 False
mLeftYAxis.setShowOnlyMinMax(true);
mRightYAxis.setShowOnlyMinMax(true);
设置y轴的Label以升序或者降序排列ASC 或者DESC
mLeftYAxis.setInverted(true);
//true就是升序 反之降序排列
mRightYAxis.setInverted(true);
Space是设置最大值与最小值之外的宽度
设置最大值至TOP顶端的距离
mLeftYAxis.setSpaceTop(100f);
mRightYAxis.setSpaceTop(100f);
设置最小值到Bottom到底端的距离
mLeftYAxis.setSpaceBottom(100f);
mRightYAxis.setSpaceBottom(100f);
设置Y轴的Label显示在图表的内侧还是外侧,默认外侧
1、OUTSIDE_CHART 默认
2、INSIDE_CHART
mRightYAxis.setPosition(YAxis.YAxisLabelPosition.INSIDE_CHART);
mLeftYAxis.setPosition(YAxis.YAxisLabelPosition.INSIDE_CHART);
设置Y轴显示的label个数
mLeftYAxis.setLabelCount(7, true);
mRightYAxis.setLabelCount(7, true);
//第一个参数为Label的个数,最多25个,默认为6
//第二个参数为 是否均匀显示长度
设置标签label与坐标轴之间的间距,有时坐标轴与数据字显示重合会影响显示效果,此时可以适当的将Label与坐标轴分开
// 設定 X 軸Offset
mLeftYAxis.setXOffset(40);
mRightYAxis.setXOffset(15);
// 設定 Y 軸Offset
mLeftYAxis.setYOffset(10);
mRightYAxis.setYOffset(10);
设置标尺限制警示线LimitLine
可以在图标上加上额外的线,表示限制或上限等等,在一开始产生 LimitLine时会带入 Value 与 String new LimitLine( flaot value , String showString ),下一步再设定给 mXAxis 或 mYAxis,并设定样式 (特別注意如果是放在 XAxis 的话,value 是指从左数过来第几个 Label)
初始化并且设置Limit外观
LimitLine ll = new LimitLine(3f, "Limit");//线条颜色宽度等
ll.setLineColor(getResources().getColor(R.color.blue_gray));
ll.setLineWidth(7f);
说明文字的部分,除了设定文字颜色、大小外,还可以设定文字的在 Limit 线的相对位置,有分为:
LEFT_BOTTOM
RIGHT_BOTTOM
//文字位置
ll.setLabelPosition(LimitLine.LimitLabelPosition.LEFT_BOTTOM)//文字颜色、大小
ll.setTextColor(getResources().getColor(R.color.blue_gray));
ll.setTextSize(12f);
加入到 mXAxis 或 mYAxis
mXAxis.addLimitLine(ll);
mLeftYAxis.addLimitLine(ll);
不管是 XAxis 或 YAxis ,他们addLimitLine丟进去的 LimitLine,物件都是参考到同一个,所以如果把 LimitLine修改样式后再丟给其他 Axis 是不行的!
Legend图例设定
通过lineChart.getLegend()取得图例,可以设置图例的大小,形状,位置,以及图例区的间距,图例和说明文字之间的位置。
设置图例位置
Legend le = lineChart.getLegend();
le.setPosition(位置);
//位置常量在Legend.LegendPosition中,还有一个饼图专用的PIECHART_CENTER
设置图例位置
图例的形状有三种
SQUARE (默认)
le.setFormSize(10f); //图例大小
le.setForm(Legend.LegendForm.CIRCLE); /图例形状
//设置说明文字的大小和颜色
le.setTextSize(12f);
le.setTextColor(Color.GRAY);
le.setXEntrySpace(50f); //X轴图例间距
le.setYEntrySpace(50f); //Y轴图例间距
le.setFormToTextSpace(50f); //图例和说明文字之间的间距
//图例超过图表区长宽时,True = 保留超过部分, False = 裁切超过的部分
le.setWordWrapEnabled(true);
十二、MakerView设置
当点击图表上的点时,将会弹出一个显示详细信息的View,所以需要设计一个MakerView继承默认的 MakerView 重写样式
public class MyMakerView extends MarkerView {
private TextView tvC
public MyMakerView (Context context, int layoutResource) {
super(context, layoutResource);
tvContent = (TextView) findViewById(R.id.tvContent);
/* 每次画 MakerView 时都会触发 Callback 方法,通常会在此方法内更新 View 的內容 */
public void refreshContent(Entry e, Highlight highlight) {
tvContent.setText("" + e.getVal());
/* * offset 是以点到的那个点(0,0) 中心然后向右下角画出来 * 所以如果要显示在点上方 * X=宽度的一半,负数 * Y=高度的负数 */
public int getXOffset() {
// this will center the marker-view horizontally
return -(getWidth() / 2);
public int getYOffset() {
// this will cause the marker-view to be above the selected value
return -getHeight();
然后在chart里加入此makerview
MyMakerView makerview = new MyMakerView(this,xxxxid);
lineChart.setMakerView(makerview);
附上PieChart小例子:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pie);
pieChart = (PieChart) findViewById(R.id.pie_chart);
pieChart.setDescription("饼状图");
List&String& labelList = new ArrayList&&();
List&Entry&
valueList = new ArrayList&&();
for(int x =0;x&3;x++){
labelList.add("X"+x);
for (int y=0;y&3;y++){
valueList.add(new Entry(30f,y));
PieDataSet dataSet = new PieDataSet(valueList,"%");
List&Integer&
colors = new ArrayList&&();
colors.add(Color.BLUE);
colors.add(Color.GREEN);
colors.add(Color.YELLOW);
dataSet.setColors(colors);
dataSet.setValueTextSize(20f);
PieData pieData = new PieData(labelList,dataSet);
pieChart.setData(pieData);
高尚是高尚者的墓志铭
卑鄙是卑鄙者的通行证
第二次更新 MPAndroidChart Library是一個強大的第三方Android圖表庫。本篇文章將原文Wiki翻譯為中文,和大家一起學習這個library的使用。 1.Getting Started 2.Interaction with the ...
37 视频滤镜 在配置编译FFmpeg时可以通过--disable-filters来禁止所有滤镜的编译。也可以配置编译脚本来输出所有包含进编译的滤镜信息。 下面是当前可用的视频滤镜介绍。 alphaextract 把输入视频作为灰度视频来提取透明通道,它通常和alphame...
一、下载Charts后可以到里面的内容 将下载后解压后的整个文件夹复制到工程里 但是只导入 工程Charts.xcodeproj--& 二、配置 三、桥接 如果删除了桥接文件,需要重新创建的不仅仅要删除桥接,还要删除路径 其他配置 上面这两个选项一般都是默认设置好的,不需要...
简介 文章较长,点击直达我的博客,浏览效果更好。本文内容基本是来源于STHDA,这是一份十分详细的ggplot2使用指南,因此我将其翻译成中文,一是有助于我自己学习理解,另外其他R语言爱好者或者可视化爱好者可以用来学习。翻译过程肯定不能十全十美,各位读者有建议或改进的话,十...
Matplotlib 入门教程 来源:Introduction to Matplotlib and basic line 译者:飞龙 协议:CC BY-NC-SA 4.0 在线阅读 PDF格式 EPUB格式 MOBI格式 代码仓库 第一章 Matplotlib 简介 欢迎阅...
每本写唐诗的评论集,都要先写初唐,然后初唐前要带隋代肇始,而又承接自南北朝。 南北朝乐府,颇有魏晋遗风,承接自汉朝乐府 北朝民歌,北齐斛律金的敕勒歌,气象磅礴,画面感十足 敕勒川,阴山下, 天似穹庐,笼盖四野, 天苍苍,野茫茫,风吹草低见牛羊 作为山西人,不得不有共鸣 南朝...
阳光的味道穿透白色的窗帘,忙忙碌碌的都市人就可以感受到自由的气息,感受到家的温馨与舒适。大飘窗设计图片来袭,给你的生活加入一些不一样的东西,虽然只是个飘窗,加入新生代的种种大胆尝试就可以打破常规,赋予空间新的生命力。和 易塑佳小编一起来看看吧! 大飘窗设计图片展示:新实用...
1不要看见的都是墙 不论在经济上,还是在人际关系上!!!只要多做一点,比你想的更接近真实! 你以为别人都会很冷漠,不一定,你看你和这些同学很久没联系,依然很热情,所以有很多需要帮助的只管说!不要限制住自己的思维! 2只有做了才知道合不合适 做,你才知道自己自己能不能胜任,以...
我无聊的时候会刷朋友圈。昨晚刷朋友圈刷出来一条爆炸性的消息。室友在和一个我们玩的很好的女生表白。这不是重点,重点是这个表白似乎有捧高踩低的感觉,还要求好友一百个赞。最后的结果就是有两个好友先点了赞,之后又取消。这条朋友圈没过多久也被删除了。 虽然删除了朋友圈,但是11班的关...
中国公益在线(公益记者 杨恩涛)安徽讯,日,每月11号 控烟在行动志愿服务活动在界首火车站广场举行。 为提高城市市居民健康意识、文明意识,养成良好的卫生习惯,减少抽烟对人体的伤害、共建和谐文明社区、巩固创建文明城市成果,在中华宋庆龄国际基金会疑难病专家委...博客分类:
一、图表属性
1、刷新
&& invalidate():在chart中调用会使其刷新重绘
&& notifyDataChanged():让chart知道它依赖的基础数据已经改变,并执行所有必要的重新计算(比如偏移量,lenged,最大值,最小值...)。在动态添加数据时需要用到。
2、打印日志
&& setLogEnable(boolean enabled):设置为true将激活chart的logcat输出。但这不利于性能,如果不是必要的,应保持禁用。
3、chart属性
&& setBackgroundColor(int color):设置背景颜色,将覆盖整个图表视图。此外,背景颜色可以在布局文件.xml中进行设置。
&& setDescription(Description desc):设置图表的描述文字,会显示在图表的右下角。
&& setDescriptionColor(int color):设置描述文字的颜色。
&& setDescriptionPosition(float x,floaty):自定义描述文字在屏幕上的位置(单位是像素)。
&& setDescriptionTypeface(Typeface t):设置描述文字的字体。
&& setDescriptionTextSize(float size):设置以像素为单位的描述文字,最小6f,最大16f。
&& setNoDataTextDescription(String desc):设置当chart为空时显示的描述文字。
&& setDrawGridBackground(boolean enabled):如果启用,chart绘图区后面的背景矩形将绘制。
&& setGridBackgroundColor(int color):设置网格背景应与绘制的颜色。
&& setDrawBorder(boolean enabled):启用/禁用绘制图表边框(chart周围的线)。
&& setBorderColor(int color):设置chart边框线的颜色。
&& setBorderWidth(float width):设置chart边界线的宽度,单位dp。
&& setMaxVisibleValueCount(int count):设置最大可见绘制的chartcount的数量。只在setDrawValues()设置为true时有效。
4、启用/禁用& 手势交互
&& setTouchEnabled(boolean enabled):启用/禁用与图表的所有可能的触摸交互。
&& setDragEnabled(boolean enabled):启用/禁用拖动(平移)图表。
&& setScaleEnabled(boolean enabled):启用/禁用缩放图表上的两个轴。
&& setScaleXEnabled(boolean enabled):启用/禁用缩放在X轴上。
&& setScaleYEnabled(boolean enabled):启用/禁用缩放在Y轴上。
&& setPinchZoom(boolena enabled):如果设置为true,没缩放功能。如果false,x轴和y轴可分别放大。
&& setDoubleTapToZoomEnabled(booleanenabled):设置为false以禁止通过在其上双击缩放图表。
&& setHighlightPerDragEnabled(booleanenabled):设置为true,允许每个图表表面拖过,当它完全缩小突出。默认值:true
&& setHighlightPerTapEnabled(boolean enabled):设置为false,以防止值由敲击姿态被突出显示。值仍然可以通过拖动或编程方式突出显示。默认值:true。
5、图表的抛掷/减速
&& setDragDecelerationEnabled(boolean enabled):如果设置为true,手指滑动抛掷图表后继续减速滚动。默认值:true。
&&& setDragDecelerationFrictionCoef(floatcoef):减速的摩擦系数在[0;1]区间,数值越高表示速度回缓慢下降,例如,如果将其设置为0,将立即停止。1是一个无效的值,会自动转换至0.9999。
6、高亮
&&& highlightValues(Highlight[] highs):高亮显示值,高亮显示的点击的位置在数据集中的值。设置null或空数组则撤销所有高亮。
&&& highlightValue(int xIndex,intdataSetIndex):高亮给定xIndex在数据集的值。设置xIndex或dataSetIndex为-1撤销所有高亮。
&&& getHighlightd():返回一个highlight[]其中包含所有高亮对象的信息,xIndex和dataSetIndex。以Java编程方式使得值高亮不会回调onChartValueSelectedListener。
7、选择回调
&&& MPAndroidChart提供了许多用于交互回调的方法,其中OnChartValueSelectedListener在点击高亮时回调。
&&&& publicinterface OnChartValueSelectedListener{
/**
*当点击图表里面的值
*
* @param e 选择的数据集
* @param dataSetIndex& 数据集的索引
* @param h& 相应的突出对象
*/
public voidonValueSelected(Entry e, int dataSetIndex, Highlight h);
/**
*& 当没有选择时
*/
public voidonNothingSelected();
&&&& }
&&&& 让你的类实现该接口并设置对chart进行监听,即可接收回调。
8、手势回调
&&&& 监听器OnchartGestureListener可以使得chart与手势操作进行交互。
&&&& publicinterface OnChartGestureListener{
/**
* 开始触摸图表时回调(按下)
*
* @param me
* @param lastPerformedGesture
*/
voidonChartGestureStart(MotionEvent me, ChartTouchListener.ChartGesturelastPerformedGesture);
/**
* 结束触摸图表时回调(抬起、取消)
*
* @param me
* @param lastPerformedGesture
*/
voidonChartGestureEnd(MotionEvent me, ChartTouchListener.ChartGesture lastPerformedGesture);
/**
* 长按图表时回调
*
* @param me
*/
public voidonChartLongPressed(MotionEvent me);
/**
* 双击图表时回调
*
* @param me
*/
public voidonChartDoubleTapped(MotionEvent me);
/**
*单击图表时回调
*
* @param me
*/
public voidonChartSingleTapped(MotionEvent me);
/**
* 根据手势回调
*
* @param me1
* @param me2
* @param velocityX
* @param velocityY
*/
public voidonChartFling(MotionEvent me1, MotionEvent me2, float velocityX, floatvelocityY);
/**
*缩放图表时回调
*
* @param me
* @param scaleX scalefactor onthe x-axis
* @param scaleY scalefactor onthe y-axis
*/
public voidonChartScale(MotionEvent me, float scaleX, float scaleY);
/**
* 移动或旋转时调用
*
* @param me
* @param dX translationdistance on the x-axis
* @param dY translationdistance on the y-axis
*/
public voidonChartTranslate(MotionEvent me, float dX, float dY);
&&&& }
&&&& 让你的类实现该接口并设置对chart进行监听,即可接受回调。
&&& chart.setOnChartGestureListener(this);
&&&& 设置了监听器后,chart会根据你的setXXXEnable()进行放缩移动等操作。不用在接口方法里对图表进行放缩移动等操作,接口方法可以让你实现其他对应功能,比如说你要打印放缩的是ScaleX,ScaleY:
&&&& @Override
public voidonChartScale(MotionEvent me, float scaleX, float scaleY) {
Log.i("Scale /Zoom", "ScaleX: " + scaleX + ", ScaleY: " + scaleY);
&&&& }
9、图表自属方法
雷达图(RadarChart)
setWebLineWidth(float width)&&&&&&&&&&&&& 设置向外放射线条宽度
setWebLineWidthInner(floatwidth)&&&&&&&& 设置内部环线宽度
setSkipWebLineCount(intcount)&&&&&&&&&&& 设置隐藏count条放射线条
setWebAlpha(int alpha)&&&&&&&&& 设置背景透明度
setWebColor(int color)&&&&&&&&& 设置向外放射线颜色
setWebColorInner(int color)&&&& 设置内部环线颜色
setDrawWeb(boolean enabled)&&&& 设置是否显示雷达图
柱形图(BarChart)
setDrawValueAboveBar(boolean enabled)&&&& 设置数字显示在柱形条上部或下部
setDrawBarShadow(boolean enabled)& 设置是否显示全部柱形条,不填充部分显示灰色
setHighlightFullBarEnabled(boolean enabled)& 设置是否高亮显示
setFitBars(boolean enabled)& 设置X轴范围两侧柱形条是否显示一半
饼图(PieChart)
setUsePercentValues(booleanenabled)& 设置图表内值显示为原始值或百分之
setHoleColor(int color)&&&& 设置中心圈背景颜色
setDrawSlicesUnderHole(boolean enable)&& 设置在中心圈下面是否显示切片
setDrawHoleEnabled(boolean enabled)&& 设置是否显示中心圈部分
setCenterText(CharSequence text)&&& 设置中心圈文字
setDrawCenterText(boolean enabled)&& 设置是否显示中心圈文字
setHoleRadius(final float percent)&& 设置中心圈半径占整个饼状图半径的百分比,默认50%
setTransparentCircleColor(int color)&&& 设置透明圈的颜色
setTransparentCircleRadius(final float percent)设置透明圈半径占整个饼状图半径的百分比,默认55%
setTransparentCircleAlpha(int alpha)&&& 设置透明圈的透明度
setMaxAngle(float maxangle)&&&&&& 设置饼图的最大角度,90&= maxangle&=360
二、坐标轴
1、Document
&&&& AxisBase是XAxis和YAxis的父类
&&&& AxisBase 所有标签的基类
&&&& XAxis&&& X轴标签设置。只是用setter方法来修改它,不要直接访问公共变量。(对于RadarChart蜘蛛网状图不是所有的Xlabls都适用。)
&&&& YAxis&&& Y轴标签设置和它的条目。只使用setter方法来修改它,不要直接访问公共变量。( 对于RadarChart蜘蛛网状图不是所有的Ylabls都适用。 )在为chart设置data之前,影响轴的值范围的Customizations需要先被应用。
2、概述
&&&& 下面提及的方法可以适用于两个轴。
&&&& “轴”类允许特定的Style,由以下components/parts组成(可以包含):
&&&& 轴的标签(y轴垂直绘制或X轴水平取向),contain轴的描述值。
&&&& 所谓axis-line被直接绘制在标签旁且平行。
&&&& grid-lines在水平方向,且源自每一个轴标签。
&&&& LimitLines允许呈现的特别信息,如边界或限制。
3、控制轴的绘制。
&&& setEnable(boolean enabled):设置轴启用或禁用。如果false,该轴的任何部分都不会被绘制(不绘制坐标轴/便签等)。
&&& setDrawGridLines(boolean enabled):设置为true,则绘制网格线。
&&& setDrawAxisLines(boolean enabled):设置为true,则绘制该行旁边的轴线(axis-line)。
&&& setDrawLables(boolean enabled):设置为true,则绘制轴的标签。
4、修改轴
&&& setTextColor(int color):设置轴标签的颜色。
&&& setTextSize(float size):设置轴标签的文字大小。
&&& setTypeface(Typeface tf):设置周标倩的Typeface。
&&& setGridColor(int color):设置该轴的网格线颜色。
&&& setGridLineWidth(float width):设置该轴网格线的宽度。
&&& setAxisLineColor(int color):设置轴线的轴的颜色。
&&& setAxisLineWidth(float width):设置该轴轴行的宽度。
&&& enableGridDashedLine(float lineLength,float spaceLength,float phase):启用网格线的虚线模式中得出,比如像这样“- - - -”。
&&&&&&&& “lineLength”控制虚线段的长度
&&&&&&&& “spaceLength”控制线之间的空间
&&&&&&&& “phase”控制线的起始点
5、限制线
&&&& 两个轴支持LimitLines来呈现特定信息,如边界或限制线。LimitLines加入到YAxis在水平方向上绘制,添加到XAxis在垂直方向绘制。如何通过给定的轴添加和删除LimitLines:
&& addLimitLines(LimitLine l):给该轴添加一个新的LimitLine。
&& removeLimitLine(LimitLine l):从该轴删除指定的LimitLine。
&& removeAllLimitLines():删除所有的LimitLine。
&& getLimitLines():获得所有的 LimitLine
&& setDrawLimitLineBehindData(booleanenable):控制LimitLines与actual data之间的z-order。如果设置为true,LimitLines绘制在actualdata的后面,否则在其前面。默认值:false。
6、概述
&&&& XAxis、YAxis类是AxisBase的一个子类。
&&&& XAxis类是所有与水平轴相关的“数据和信息容器”。每个LineChart,BarChart,ScateerChart,CandleStickChart和RadarChart都有一个XAxis对象。XAxis对象展示了以ArrayList&String&或String[](“xVals”)形式递交给ChartData对象的数据。得到XAxis的实例:XAxisxAxis = chart.getXAxis();
&&&&&&& YAxis 类是一切与垂直轴相关的数据和信息的容器。 每个 LineChart,BarChart , ScateerChart or CandleStickChart 都有 left 和 right 的 YAxis 的对象,分别在左右两边。 但是 RadarChart 只有一个 YAxis 。 缺省情况下,图表的两个轴都被启用,并且将被绘制。 得到XAxis的实例:YAxisyAxis = chart.getYAxis();
7、属性:
& isDrawAxisLineEnabled():返回坐标轴是否能被绘制(return true/fasle)
& setCenterAxisLabels(boolean enabled):设置标签是否居中
& isCenterAxisLabelsEnabled():返回坐标轴标签是否居中
& setDrawLabels(boolean enabled):设置是否可以绘制文本
& isDrawLabelsEnabled():返回坐标轴是否可以绘制文本
& setLabelCount(int count):设置坐标轴的标签数量,当count&25时,count=25;当count&2时,count=2
& setLabelCount(int count, boolean force): 设置坐标轴的标签数量, 这个数字是不固定 if(force ==false),只能是近似的。如 果if(force ==true),则确切绘制指定数量的标签,但这样可能导致轴线分布不均匀。
& isForceLabelsEnabled():返回是否强加标签。默认:false
& getLabelCount():返回标签数量
& setGranularityEnabled(boolean enabled):设置是否可以设置间隔
& isGranularityEnabled():返回是否可以设置间隔
& getGranularity():返回坐标轴间隔大小
& setGranularity (float granularity):设置坐标轴间隔大小
& getLongestLabel():返回坐标轴最长的文本,String类型
& getFormattedLabel(int index):返回坐标轴的格式化文本,String类型
& setValueFormatter(IAxisValueFormatter f):设置坐标轴文本的格式
& getAxisMaximum():返回坐标轴的最大值,float类型
& getAxisMinimum():返回坐标轴的最小值,float类型
& setAxisMinimum(float min):设置坐标轴的最小值
& setAxisMaximum(float max):设置坐标轴的最大值
& calculate(float dataMin, float dataMax):计算坐标轴的最大值和最小值的差值
& setSpaceMin(float mSpaceMin):设置坐标轴额外的最小的空间
& setSpaceMax(floatmSpaceMax): 设置坐标轴额外的最大的空间
&& setAvoidFirstLastClipping(booleanenabled):& 设置X轴第一个和最后一个标签超出屏幕
&& setLabelRotationAngle(float angle):& 设置X轴标签文字的方向
&& setPosition(XAxisPosition pos):& 设置X轴标签的位置
&& setZeroLineWidth(float width):& 设置Y轴第一条线的宽度
&& setZeroLineColor(int color):& 设置Y轴第一条线的颜色
&& setDrawZeroLine(boolean mDrawZeroLine):& 设置Y是否显示第一条线
&& setSpaceBottom(float percent):& 设置底部距离
&& setSpaceTop(float percent):& 设置顶部距离
&& setStartAtZero(boolean startAtZero):& 设置Y轴是否从0开始
&& setInverted(boolean enabled):& 设置Y轴是否翻转
&& setDrawTopYLabelEntry(boolean enabled):& 设置是否显示顶部标签
&& setPosition(YAxisLabelPosition pos):& 设置Y轴标签位置
三、数据(DataSet)
&&&&&&&& DataSet 类是所有数据集类的基类,是 Chart 中一组或一类的 Entry 的集合。 它被设计成 Chart 内部逻辑上分离的不同值组(例如, LineChart 中特定行的值或 BarChart 中特定bar组的值)。
1、属性
&&&&&&&&&& setMode(LineDataSet.Mode mode):设置模式
&&&&&&&&&&&&&&&&&& CUBIC_BEZIER&& 立方曲线
&&&&&&&&&&&&&&&&&& LINEAR&& 直线
&&&&&&&&&&&&&&&&&& STEPPED 阶梯
&&&&&&&&&&&&&&&&&& HORIZONTAL_BEZIER& 水平曲线
&&&&&&&&&& setCubicIntensity(float intensity):设置曲线的弯曲程度
&&& getColors():返回颜色(LineChart:折线;BarChart:柱图等),List&Integer&类型
&&& getValueColors():返回文本颜色, List&Integer&类型
&&& getColor():返回索引为0的颜色,int类型
&&& getColor(int index):返回索引为index的颜色,int类型
&&& setColors(List&Integer& colors)/setColors(int...colors)/setColors(int[] colors, Context c):设置颜色
&&& setLabel(String label):设置文本
&&& getLabel():获得文本,String类型
&&&&& setHighlightEnabled(boolean enabled) : 设置为true,允许通过点击高亮突出 ChartData 对象和其 DataSets
&& setValueFormatter(IValueFormatter f):设置文本格式
&& setValueTextColor(intcolor)/setValueTextColors(List&Integer& colors):设置文本颜色
&&& setValueTypeface(Typeface tf):设置文本的字体
&&& setValueTextSize(float size):设置文本的字体大小
&& setForm(Legend.LegendForm form):设置形状的大小
&& setFormLineWidth(float formLineWidth):设置线的宽度
&&& setDrawValues(boolean enabled):设置是否显示文本
&&& setVisible(boolean visible):设置是否显示
&&&& setDrawFilled(boolean filled):设置是否填充
&&&&& setFillAlpha(intalpha):设置填充透明度
&&&& setFillColor(int color):设置填充颜色
&&&& setFillDrawable(Drawable drawable):设置填充drawable
&&&& setDrawCircleHole(boolean enabled):设置是否实心
&&&& removeFirst():移除第一个值
&&&&& removeEntry(int index):移除下标index的值
&&&& removeLast():移除最后一个值
&&&& removeEntryByXValue(float xValue);根据值移除,不建议使用
四、Legend
&& Legend 通常由一个标签的 形式/形状 来表示多个条目( entries )的每一个。
& Entries 数量自动生成的legend 取决于DataSet 的标签 不同颜色的数量(在所有 DataSet 的对象)。 Legend 的标签取决于图表中所使用的 DataSet对象。如果没有为 DataSet 对象指定标签,图表将自动生成它们。如果多个颜色用于一个 DataSet ,这些颜色分类,只通过一个标签说明。
1、属性
setXOffset(floatxOffset):设置在X轴方向的偏移量
setYOffset(floatyOffset):设置在Y轴方向的偏移量
setTypeface(Typefacetf): 设置文本的字体
setTextSize(floatsize):设置文本字体大小
setTextColor(intcolor):设置文本颜色
setEnabled(booleanenabled):设置是否可用(简单理解为是否显示)
& setEntries(List&LegendEntry& entries);&&&&&&&&&& 设置图例,传LegendEntry的集合
setExtra(LegendEntry[]entries)&&& 设置图例,传LegendEntry数组
setExtra(List&Integer&colors, List&String& labels) 设置图例,传color的集合和& LegendEntry的集合
setExtra(int[]colors, String[] labels) 设置图例,传color的数字和LegendEntry数组
& setCustom(LegendEntry[] entries)&&&&& 设置图例,灰色图标不可见
& setCustom(List&LegendEntry& entries)&& 设置图例,灰色图标不可见
& setHorizontalAlignment(LegendHorizontalAlignment value)& 设置水平对齐方式
& setVerticalAlignment(LegendVerticalAlignment value)& 设置垂直对齐方式
& setOrientation(LegendOrientation value)&& 设置方向
& setDrawInside(boolean value)&&& 设置是否画在图表里
& setDirection(LegendDirection pos)&&& 设置文字的方向
& setForm(LegendForm shape)&&& 设置形状
& setFormSize(float size)&&& 设置形状大小
& setFormLineWidth(float size)&&& 设置线条宽度(形状为线状时)
setFormLineDashEffect(DashPathEffect dashPathEffect) 设置线状轨迹
& setXEntrySpace(float space)&& 设置图例水平方向的间距
setYEntrySpace(float space)&&& 设置图例垂直方向的间距
& setFormToTextSpace(float space)& 设置图例和文字的间距
& setWordWrapEnabled(boolean enabled)& 设置图例是否重新创建一行
浏览: 1688 次
来自: 武汉
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 b样条曲线 节点向量 的文章

 

随机推荐