绘制折线图

绘制折线图

1.把achartengine-1.1.0文件夹下的achartengine-1.1.0.jar文件copy到项目的libs目录下,并Build Pathàadd.

2.把achartengine-1.1.0-demo-source文件import到Eclipse中运行查看效果。

publicclassTuBiaoUtil {

   publicstatic ViewcreatTubiaoView(Context context,WeatherBean weatherBean){

1.   View view=null;

2.   //填充内容

      //数据集合

3.   XYMultipleSeriesDataset dataset=getDemoDataset(weatherBean);

4.   //渲染器

5.   XYMultipleSeriesRenderer renderer=getDemoRenderer();

6.  

7.  

8.   view=ChartFactory.getLineChartView(context, dataset,renderer);

9.   returnview;

10.        }

11.        /**

12.         * 创建渲染器

13.         * 一个总渲染器,有多少折现图,就创建多少子渲染器

14.         * 一条折现由对应的一条子渲染器进行渲染,颜色,样式,文字。。。

15.         * @return

16.         */

17.        privatestaticXYMultipleSeriesRenderer getDemoRenderer() {

18.           // 颜色值

19.           int[]colors = newint[]{ Color.RED,Color.GREEN};

20.           // 点的一个样式

21.           PointStyle[] styles = new PointStyle[] { PointStyle.CIRCLE,

22.                PointStyle.DIAMOND };

23.           // 创建渲染器

24.           XYMultipleSeriesRenderer renderer = buildRenderer(colors,styles);

25.           returnrenderer;

26.        }

27.      

28.        privatestaticXYMultipleSeriesRenderer buildRenderer(int[] colors,

29.             PointStyle[] styles) {

30.           XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();

31.           renderer.setAxisTitleTextSize(16);

32.           renderer.setChartTitleTextSize(20);

33.           renderer.setLabelsTextSize(15);

34.           renderer.setLegendTextSize(15);

35.           renderer.setPointSize(5f);

36.           renderer.setMargins(newint[] { 20, 30, 15, 20 });

37.           intlength = colors.length;

38.           for(inti = 0; i < length; i++) {

39.             XYSeriesRenderer r = new XYSeriesRenderer();

40.             r.setColor(colors[i]);

41.             r.setPointStyle(styles[i]);

42.             renderer.addSeriesRenderer(r);

43.           }

44.           //继续的配置

45.           intlength2 = renderer.getSeriesRendererCount();

46.            for (int i = 0; i < length2;i++) {

47.              ((XYSeriesRenderer)renderer.getSeriesRendererAt(i)).setFillPoints(true);

48.            }

49.            setChartSettings(renderer,"七天温度走向", "", "温度",0.5, 7.5, -10, 40,

50.                Color.LTGRAY, Color.LTGRAY);

51.            renderer.setXLabels(7);

52.            renderer.setYLabels(8);

53.            renderer.setShowGrid(true);

54.            renderer.setXLabelsAlign(Align.RIGHT);

55.            renderer.setYLabelsAlign(Align.RIGHT);

56.            renderer.setZoomButtonsVisible(true);

57.            renderer.setPanLimits(newdouble[] { -10, 20, -10, 40});

58.            //放大图表

59.            renderer.setZoomLimits(newdouble[] { -10, 20, -10, 40});

60.          

61.          

62.           returnrenderer;

63.        }

64.      

65.        protectedstaticvoidsetChartSettings(XYMultipleSeriesRenderer renderer, String title, StringxTitle,

66.                 String yTitle, double xMin, double xMax, double yMin, double yMax, int axesColor,

67.                 int labelsColor) {

68.               renderer.setChartTitle(title);

69.               renderer.setXTitle(xTitle);

70.               renderer.setYTitle(yTitle);

71.               renderer.setXAxisMin(xMin);

72.               renderer.setXAxisMax(xMax);

73.               renderer.setYAxisMin(yMin);

74.               renderer.setYAxisMax(yMax);

75.               renderer.setAxesColor(axesColor);

76.               renderer.setLabelsColor(labelsColor);

77.             }

78.       

79.        /**

80.         * 创建图表的总数据集,图表有几条折线图,就需要添加多少个子数据集子数据集用XYSeries封装,x代表X轴坐标,values代表Y轴坐标

81.         *

82.         * @return

83.         */

84.        privatestaticXYMultipleSeriesDataset getDemoDataset(

85.             WeatherBean weatherBean) {

86.           // 标题

87.           String[] title = { "最高温度", "最低温度" };

88.           // 1)x

89.           List<double[]> x = newArrayList<double[]>();

90.           x.add(newdouble[]{ 1, 2, 3, 4, 5, 6, 7 });

91.           x.add(newdouble[]{ 1, 2, 3, 4, 5, 6, 7 });

92.          

93.           /*List<double[]> x = new ArrayList<String[]>();

94.           x.add(new double[] { "", "","", "", "", "", "" });

95.           x.add(new double[] { "", "","", "", "", "", "" });*/

96.           // 2y

97.           List<double[]> values = new ArrayList<double[]>();

98.           double[]maxTem = newdouble[7];

99.           double[]minTem = newdouble[7];

100.         // 3)把天气数据放入

101.         List<Daily> forecast = weatherBean.getDaily_forecast();

102.         for(inti = 0; i < forecast.size(); i++) {

103.           maxTem[i] = Double.parseDouble(forecast.get(i).getTmp().getMax());

104.           minTem[i] = Double.parseDouble(forecast.get(i).getTmp().getMin());

105.         }

106.         values.add(maxTem);

107.         values.add(minTem);

108.         // 整理成Achart特有的数据

109.         XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();

110.         for(inti = 0; i < title.length;i++) {

111.           // 小数据集

112.           XYSeries series = new XYSeries(title[i]);

113.           double[] xV = x.get(i);

114.           double[] yV = values.get(i);

115.           int seriesLength = xV.length;

116.           for (inty = 0; y < seriesLength; y++) {

117.              // 填充数据

118.              series.add(xV[y], yV[y]);

119.           }

120.           dataset.addSeries(series);

121.         }

122.         returndataset;

123.      }

124.   }

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值