Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
同步图表或多个图表,如Android中的Highcharts_Android_Charts_Highcharts_Mpandroidchart - Fatal编程技术网

同步图表或多个图表,如Android中的Highcharts

同步图表或多个图表,如Android中的Highcharts,android,charts,highcharts,mpandroidchart,Android,Charts,Highcharts,Mpandroidchart,我们如何在Android中实现同步图表 对于我的网页,我使用了HighchartsAPI。Android有没有类似的功能。我检查了提到的各种库,但没有找到任何符合要求的库 我不想要像和这样的组合图表。我在找同步图表 是否有符合要求的库,或者我应该使用webView(这对我来说是最糟糕的情况) 是否可以使用MPAndroidChart 编辑: 结果图表应与第页中给出的图表相同 样本: 更新 格言不仅仅是画三张图表。目的是使它们同步。同步意味着所有3个图表具有相同的x轴(值),单击这些图表中的任意

我们如何在
Android
中实现
同步图表

对于我的网页,我使用了
Highcharts
API。Android有没有类似的功能。我检查了提到的各种库,但没有找到任何符合要求的库

我不想要像和这样的组合图表。我在找同步图表

是否有符合要求的库,或者我应该使用
webView
(这对我来说是最糟糕的情况)

是否可以使用
MPAndroidChart

编辑

结果图表应与第页中给出的图表相同

样本

更新


格言不仅仅是画三张图表。目的是使它们同步。同步意味着所有3个图表具有相同的x轴(值),单击这些图表中的任意点,该特定点的绘图应在所有图表中突出显示。我肯定我没有解释清楚。请检查此项并将图表悬停

,您肯定可以使用库进行设置

选择1>线条图(带图例,简单设计)以获得速度 2> 标高、心脏的线形图(立方线)/(渐变填充)

使用gradientFill时,应用此选项以消除虚线并绘制直线:

    lineDataSet.enableDashedLine(0f, 0f, 0f);
    lineDataSet.enableDashedHighlightLine(0f, 0f, 0f);
使用MPAndroidChart,可以很好地显示“开箱即用”的可用功能

如您所见,ListView中有一个多图表的示例,它似乎与您的需求非常接近

同样,GitHub上也提供了,您可以检查并查看它是否有可用的类和方法,以便您可以开箱即用地完成所需的工作

同时,您应该了解,期望仅从配置中找到一个完全适合不寻常需求的库通常是不现实的。免费和开源库通常提供扩展和定制,MPAndroidChart也不例外。作为一名专业的软件工程师,或者作为一名有抱负的工程师,你应该愿意并准备好自己编程

在您的特殊情况下,您似乎希望图表之间有某种协调。因此,如果您单击其中一个,则数据集中的所有xIndex上都会显示
MarkerView

若要尝试此操作,请首先查看的代码。可通过使用获得解决方案。您将设置3个
OnChartGestureListener
实现,该实现将使用事件将当前手势传输给中介,然后中介将触发其他两个图表上的相同手势。例如,在
OnChartGestureListener
中,有一个方法要实现,名为:

void onChartScale(MotionEvent var1, float var2, float var3);
您的实现如下所示:

@Override
void onChartScale(MotionEvent var1, float var2, float var3) {
    //transmit event to mediator 
    //handle event for this chart
}
如果这太难了,那么您必须坚持使用
网络视图中的Highcharts
,正如您自己所建议的那样。但是,请注意,
WebView
中的性能不如使用直接渲染到画布的库


简而言之,使用MPAndroidChart实现您想要的目标是可能的,尽管很困难,但没有现成的解决方案。

单击图表1时,获取X点和Y点,并在图表2中突出显示它们。与第二张图表相同

    lineChart1.setOnChartValueSelectedListener(new OnChartValueSelectedListener()
    {
        @Override
        public void onValueSelected(Entry e, Highlight h)
        {
            lineChart2.highlightValue(e.getX(),e.getY(),0,false);
        }

        @Override
        public void onNothingSelected()
        {
        }
    });


    lineChart2.setOnChartValueSelectedListener(new OnChartValueSelectedListener()
    {
        @Override
        public void onValueSelected(Entry e, Highlight h)
        {
            lineChart1.highlightValue(e.getX(),e.getY(),0,false);
        }

        @Override
        public void onNothingSelected() {
        }
    });

注意将最后一个参数设置为false,这样它就不会一次又一次地调用侦听器。如果未设置此选项,则会导致死锁。

请指定要准备的图表类型,我指的是图像或可以给出正确想法的内容。@DeepPatel已更新。现在,我试着画两个折线图,一个放在另一个下面,使用相同的x轴数据集,在标记上尝试一些逻辑,我的意思是在任何点单击。不知道它通向哪里。我现在试着检查我在下面的相关问题中的答案,直到得到图表并绘制轴点。但我被标记卡住了。以前版本的MPAndroidChart对我来说非常方便。现在我真的在和它斗争。但我明白,这项任务需要更多的努力,在YouPaste的指导下可以完成,一切都很好,但是我如何同时调用Marker的两个实例我想你必须在目标图表上使用
getHighlighter
,然后
updateHighlighted
inside
onValueSelected
我得到了我们单击的x和y坐标。现在,我必须调用一个标记并说出它,以显示剩余图表中这些坐标处的标记。如何手动调用标记器?任务已完成<代码>highlightValue使用必需的参数完成了trickI'm,并在DeepPatel使用折线图完成。我的问题是“如何同步它们”。