❶ android怎么将柱状图和曲线共存
1、先选取主要数据区,插入柱形图
于是得到了下面的图表,但是注意到横坐标并非“1月,2月...”,而是"1,2...",所以先来解决这个
2、右侧图表->“选择数据”->"水平(分类)轴标签",设置水平分类标签的数据源
完成之后,水平横坐标应该能正常显示"1月,2月..."了,但是到目前为止,折线图还不见踪影
3、在图表上右击-->选择数据源-->图例项(系列)-->添加
按照下图设置“系列名称”来源,以及“系列值”来源(即添加浙江件数的数据来源)
完成之后,会发现图表面目全非了,而且右侧的纵向坐标轴也变了!
4、选中图表中的柱状,右击-->更改系列图表类型(Y)
改成折线图
然后继续选中折线,右击-->设置数据系列格式-->设置为"次坐标轴",你会发现之前漂亮的图表又回来了
5、类似的操作,添加其它几个省份的"件数"折线图
可能注意到了:右侧的图例中,有二组相同的省份(一组是柱状图的,一组是折线图的),可以删掉一组
6、最后调整柱状图跟折线的颜色,以便让这二组图的颜色一致
终于,得到了一个漂亮的同时带有“折线”跟“柱状”的图表.
❷ android中这样的曲线要怎么绘制
绘制曲线图首先需要画好横竖坐标轴建立坐标系,比如坐标系中的100距离应该在canvas中绘制多长,这个是需要计算的,其实坐标体系的建立是最复杂的,我看过很多第三方库的建立方法都不一样,有的要灵活一些,有的比较死板。至于绘制曲线要么是用Canvas.drawLine方法,要么是用Path.lineTo方法,看你自己的习惯。
为了做出一个外观良好的曲线图,我参考了两个开源代码,第一个的曲线图绘制限制较多,使用范围太窄,但是有数据变化时的动画效果。第二个的适用范围很广,他能根据数据集合自动计算横纵坐标的个数,在canvas上单元格的距离,只需输入坐标点就能自动建立坐标体系绘制曲线,但是没有动画效果。
先讲第一个LineView。
LineView的demo可以在这里下载,lineview其实只是github项目的一部分,我是将其提取出来了的,个人觉得他的其他部分没有参考价值。作者好像是个韩国人。
LineView的曲线绘制没有什么可取的部分,我想学习的是他实现动画效果的方法,设计的很好,但具体实现还需要改进,让动画更流畅。
Lineview的调用方法:
在xml中添加lineview控件
<HorizontalScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/horizontalScrollView"
android:layout_alignParentRight="true"
android:layout_above="@+id/line_button">
<view
android:layout_width="wrap_content"
android:layout_height="200dp"
class="com.example.widget.LineView"
android:id="@+id/line_view"/>
</HorizontalScrollView>
在activity代码中获取lineview对象:
finalLineView lineView = (LineView)findViewById(R.id.line_view);
添加横坐标:
int randomint = 9;
ArrayList<String>test =newArrayList<String>();
for (int i=0;i<randomint; i++){
test.add(String.valueOf(i+1));
}
lineView.setBottomTextList(test);
允许绘制坐标点:
lineView.setDrawDotLine(true);
lineView.setShowPopup(LineView.SHOW_POPUPS_NONE);
ArrayList<Integer> dataList = newArrayList<Integer>();
intrandom = (int)(Math.random()*9+1);
for (int i=0;i<randomint; i++){
dataList.add((int)(Math.random()*random));
}
添加纵坐标的值:
ArrayList<ArrayList<Integer>>dataLists = newArrayList<ArrayList<Integer>>();
dataLists.add(dataList);
lineView.setDataList(dataLists);
从其用法中可以看出,lineview需要提前设定横坐标的范围,而且纵坐标的值必须和lineView.setBottomTextList(test)中添加的值一一对应(读lineview源码可以知道),使用起来很不方便,我觉得作者仅仅是做出了一条曲线而已,而不太关注是否有用。和很多曲线图的开源代码一样lineview允许一次绘制几根颜色不同的曲线。
只需在上面的代码中为dataLists再添加一个list成员就行。
❸ android实时动态曲线图下面颜色怎么填充
1.用JS更好实现 option = { legend: { data:['高度(km)与气温(°C)变化关系'] }, tooltip: { trigger: 'axis', formatter: "Temperature : <br/>{b}km : {c}°C" }, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, xAxis: { type: 'value', axisLabel: { formatter: '{value} °C' } }, yAxis: { type: 'category', axisLine: {onZero: false}, axisLabel: { formatter: '{value} km' }, boundaryGap: false, data: ['0', '10', '20', '30', '40', '50', '60', '70', '80'] }, series: [ { name: '高度(km)与气温(°C)变化关系', type: 'line', smooth: true, lineStyle: { normal: { width: 3, shadowColor: 'rgba(0,0,0,0.4)', shadowBlur: 10, shadowOffsetY: 10 } }, data:[15, -50, -56.5, -46.5, -22.1, -2.5, -27.7, -55.7, -76.5] } ] };
❹ 高分悬赏:求Android Achartengine 绘制动态更新的曲线图的代码
可以用AndroidPlot,也是用于Android的第三方类库,可以实现图形的动态显示。
❺ 有谁可以在Android实现仿照siri声波曲线
代码实现
波浪其实是由4条贝塞尔曲线组成的,可以在自定义View的onDraw函数中,用Path.quadTo函数画出4条曲线。
Path.quadTo(float x1, float y1, float x2, float y2)
其中,x1,y1为控制点的坐标值,x2,y2为终点的坐标值;当控制点的x1位于起点与终点之间时,将画出正弦曲线,此时y1控制正弦曲线的高度,即效果图中波浪的高度由y1控制。
实现了曲线绘制和高度控制之后,如何让曲线像波浪一样动起来呢?
我的解决方法是在屏幕左边,即x<0的位置,同样绘制4条正弦曲线,并且启动线程让8条曲线都向右移动,当左边4条曲线全部移动到屏幕内后,让这8条曲线复位。如此周期进行。
解析
使用方法
在xml中,
<com.tao.view.SiriView
android:id="@+id/siriView"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_centerInParent="true"/>
在Activity.Java中,
SiriView siriView = (SiriView) findViewById(R.id.siriView);
// 停止波浪曲线
siriView.stop();
// 设置曲线高度,height的取值是0f~1f
siriView.setWaveHeight(0.5f);
// 设置曲线的粗细,width的取值大于0f
siriView.setWaveWidth(5f);
// 设置曲线颜色
siriView.setWaveColor(Color.rgb(39, 188, 136));
// 设置曲线在X轴上的偏移量,默认值为0f
siriView.setWaveOffsetX(0f);
// 设置曲线的数量,默认是4
siriView.setWaveAmount(4);
// 设置曲线的速度,默认是0.1f
siriView.setWaveSpeed(0.1f);