草庐IT

android - achartengine 一张折线图中的多条线

coder 2023-12-28 原文

我正在尝试根据此视频在图表中显示两条线: http://www.youtube.com/watch?v=5DGldVzC-bU

我的代码:

public class LineGraph {
    public Intent getIntent(Context context){


        int[] x = {1,2,3,4,5,6,7,8,9,10}; 
        int[] y = {31,29,54,94,75,36,47,118,92,10};



        TimeSeries series = new TimeSeries("Line1");
        for (int i=0;i<x.length;i++){
            series.add(x[i],y[i]);
        }

        int[] x2 = {1,2,3,4,5,6,7,8,9,10}; 
        int[] y2 = {39,145,35,87,2,65,48,49,100,106};

        TimeSeries series2 = new TimeSeries("Line2");
        for (int i=0;i<x2.length;i++){
            series.add(x2[i],y2[i]);
        }



        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
        dataset.addSeries(series);
        dataset.addSeries(series2);



        XYSeriesRenderer renderer = new XYSeriesRenderer();
        renderer.setColor(Color.CYAN);
        renderer.setPointStyle(PointStyle.SQUARE);
        renderer.setFillPoints(true);
        renderer.setLineWidth(3);
        renderer.setDisplayChartValues(true);

        XYSeriesRenderer renderer2 = new XYSeriesRenderer();
        renderer2.setColor(Color.BLACK);
        renderer2.setPointStyle(PointStyle.CIRCLE);
        renderer2.setFillPoints(true);
        renderer2.setLineWidth(3);
        renderer2.setDisplayChartValues(true);

        XYMultipleSeriesRenderer mrenderer = new XYMultipleSeriesRenderer();
        mrenderer.addSeriesRenderer(renderer);
        mrenderer.addSeriesRenderer(renderer2);

        mrenderer.setChartTitle("title");

        mrenderer.setBackgroundColor(Color.WHITE);

        mrenderer.setShowGrid(true);
        mrenderer.setApplyBackgroundColor(true);

        mrenderer.setXTitle("Days");
        mrenderer.setYTitle("datas");

        mrenderer.setGridColor(Color.GRAY);
    //  mrenderer.setZoomButtonsVisible(true);

        Intent intent = ChartFactory.getLineChartIntent(context, dataset, mrenderer, "Line graph title");
        return intent;

    }

与视频中的几乎相同。但是我没有用,我没有得到两条不同的线,而是只有一条。当第一行 (x) 的最后一个数据结束时,它转到第二行 (x2) 的第一个数据,因此第二行从第一行继续。 提前致谢!

最佳答案

不应该是:

series.add(x2[i],y2[i]);

实际上是:

series2.add(x2[i],y2[i]);

注意“2”。

关于android - achartengine 一张折线图中的多条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9725631/

有关android - achartengine 一张折线图中的多条线的更多相关文章

  1. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  2. ruby-on-rails - 在 RSpec 中,如何以任意顺序期望具有不同参数的多条消息? - 2

    RSpec似乎按顺序匹配方法接收的消息。我不确定如何使以下代码工作:allow(a).toreceive(:f)expect(a).toreceive(:f).with(2)a.f(1)a.f(2)a.f(3)我问的原因是a.f的一些调用是由我的代码的上层控制的,所以我不能对这些方法调用添加期望。 最佳答案 RSpecspy是测试这种情况的一种方式。要监视一个方法,用allowstub,除了方法名称之外没有任何约束,调用该方法,然后expect确切的方法调用。例如:allow(a).toreceive(:f)a.f(2)a.f(1)

  3. ruby-on-rails - 在 Rails 中更高效地查找或创建多条记录 - 2

    我有一个应用需要发送用户事件邀请。当用户邀请friend(用户)参加事件时,如果尚不存在将用户连接到该事件的新记录,则会创建该记录。我的模型由用户、事件和events_user组成。classEventdefinvite(user_id,*args)user_id.eachdo|u|e=EventsUser.find_or_create_by_event_id_and_user_id(self.id,u)e.save!endendend用法Event.first.invite([1,2,3])我不认为以上是完成我的任务的最有效方法。我设想了一种方法,例如Model.find_or_cr

  4. ruby-on-rails - 在 Rails 的一个 ActiveRecord 事务中更新多条记录 - 2

    如何使用Rails中的事务block一次性更新/保存模型的多个实例?我想更新数百条记录的值;每条记录的值都不同。这不是一个属性的批量更新情况。Model.update_all(attr:value)在这里不合适。MyModel.transactiondothings_to_update.eachdo|thing|thing.score=rand(100)+rand(100)thing.saveendendsave似乎发布了它自己的事务,而不是将更新分批处理到周围的事务中。我希望所有更新都在一次大交易中进行。我怎样才能做到这一点? 最佳答案

  5. ruby - 在公差范围内确定两条线段是否属于同一线段的最有效方法是什么? - 2

    编辑:更改了标题。我对两个部分是否相同不太感兴趣,而是如果它们在一定的公差范围内彼此共线。如果是这样,那么这些线应该聚集在一起作为一个单独的线段。编辑:我想有一个简短的说法:我试图以一种有效的方式将相似的线段聚集在一起。假设我有线段f(fx0,fy0)和(fx1,fy1)和g(gx0,gy0)和(gx1,gy1)这些来自计算机视觉算法边缘检测器之类的东西,在某些情况下,两条线基本相同,但由于像素容差而被视为两条不同的线。有几种情况f和g共享完全相同的端点,例如:f=(0,0),(10,10)g=(0,0),(10,10)f和g共享大致相同的端点和大致相同的长度,例如:f=(0,0.01

  6. ruby-on-rails - 使用载波获取gif中的第一张图像 - 2

    我使用载波上传gif效果很好,当我尝试生成拇指版本并将gif转换为jpeg时出现问题,只有gif中的第一张图像作为拇指,我得到一个错误:LocalJumpErrorinImagesController#createnoblockgiven(yield)app/controllers/images_controller.rb:21:in`new'app/controllers/images_controller.rb:21:in`create'请求参数:{"utf8"=>"✓","authenticity_token"=>"lPEjP1WtPxFdizL2/FAWGHzOZPtecb5n

  7. ruby-on-rails - 对多条路线使用同一个 Controller ? - 2

    有没有一种方法可以编写以下路由,这样您就不必每次都指定相同的Controller?...get'jobs'=>'pages#jobs'get'contact'=>'pages#contact'get'terms'=>'pages#terms'get'privacy'=>'pages#privacy' 最佳答案 这里有几个选择:在这三个中,第一个即Usingscopeas"/"将创建与问题中定义的routes创建的完全相同的路由.1。使用范围作为“/”scope"/",controller::pagesdoget'jobs'get'c

  8. Android Studio开发之使用内容组件Content获取通讯信息讲解及实战(附源码 包括添加手机联系人和发短信) - 2

    运行有问题或需要源码请点赞关注收藏后评论区留言一、利用ContentResolver读写联系人在实际开发中,普通App很少会开放数据接口给其他应用访问。内容组件能够派上用场的情况往往是App想要访问系统应用的通讯数据,比如查看联系人,短信,通话记录等等,以及对这些通讯数据及逆行增删改查。首先要给AndroidMaifest.xml中添加响应的权限配置 下面是往手机通讯录添加联系人信息的例子效果如下分成三个步骤先查出联系人的基本信息,然后查询联系人号码,再查询联系人邮箱代码 ContactAddActivity类packagecom.example.chapter07;importandroid

  9. Android 10.0 设置默认launcher后安装另外launcher后默认Launcher失效的功能修复 - 2

    1.前言 在10.0的系统rom定制化开发中,在系统中有多个launcher的时候,会在开机进入launcher的时候弹窗launcher列表,让用户选择进入哪个launcher,这样显得特别的不方便所以产品开发中,要求用RoleManager的相关api来设置默认Launcher,但是在设置完默认Launcher以后,在安装一款Launcher的时候,默认Launcher就会失效,在系统设置的默认应用中Launcher选项就为空,点击home键的时候会弹出默认Launcher列表,让选择进入哪个默认Launcher.所以需要从安装Launcher的流程来分析相关的设置。来解决问题设置默认La

  10. AiBote 2022 新研发的自动化框架,支持 Android 和 Windows 系统。速度非常快 - 2

    Ai-Bot基于流行的Node.js和JavaScript语言的一款新自动化框架,支持Windows和Android自动化。1、Windowsxpath元素定位算法支持支持Windows应用、.NET、WPF、Qt、Java和Electron客户端程序和ie、edgechrome浏览器2、Android支持原生APP和H5界面,元素定位速度是appium十倍,无线远程自动化操作多台安卓设备3、基于opencv图色算法,支持找图和多点找色,1080*2340全分辨率找图50MS以内4、内置免费OCR人工智能技术,无限制获取图片文字和找字功能。5、框架协议开源,除官方node.jsSDK外,用户可

随机推荐