同步图表或多个图表,如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
insideonValueSelected
我得到了我们单击的x和y坐标。现在,我必须调用一个标记并说出它,以显示剩余图表中这些坐标处的标记。如何手动调用标记器?任务已完成<代码>highlightValue使用必需的参数完成了trickI'm,并在DeepPatel使用折线图完成。我的问题是“如何同步它们”。