具有不同比例的 MPandroidchart 双 Y 轴
MPandroidchart Double YAxis with different scales
我希望我的图表有两个像图像一样具有不同比例的 YAxis。如何更改每个轴的比例?
MPAndroidChart库的作者在这里明确指出,(MPChart - Scatter Chart and LineChart in same plot),目前还没有这个功能。所以,我也在寻找更好的方法。
因此,您可以将两种不同的图表类型显示为一个,仍然使用这个库,只是将它们重叠。
我在我这边完成了如下操作:
1。编辑 activity 布局 xml,将 FrameLayout 作为图表容器。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
.......
<FrameLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:id="@+id/root_view">
</FrameLayout>
.......
</LinearLayout>
- 现在,在 Activity class 中,构建图表对象并将它们附加到之前的容器:
// construct the charts, as different objects
// make sure to have valid Data Sets
LineChartItem lineChart = new LineChartItem(lineChartDataset, getApplicationContext());
BarChartItem barChart = new BarChartItem(barChartDataset, getApplicationContext());
// get the charts' container
FrameLayout frameLayout = (FrameLayout) findViewById(R.id.root_view);
// populate the container with the charts' views
frameLayout.addView(lineChart.getView(0, null, getApplicationContext()));
frameLayout.addView(barChart.getView(1, null, getApplicationContext()));
PROs/CONs对于这样的做法:
专业人士
您有更多与 MPAndroidChart 组合的图表。
CON
您需要注意 X 和 Y 标签对齐。
用户事件:只有上层(按 Z 顺序)图表视图会获取用户输入,因此您需要确保所有其他图表视图的行为方式相同(处理或忽略输入,例如缩放图表或值选择)。
我希望能快速发布这个具有此选项的伟大库。预先感谢 Philipp Jahoda!
Version 2.0.0-beta 与 CombinedChart
一起在周末发布,它允许在一个图表中绘制折线图、条形图、散点图和蜡烛数据。所以该功能终于可用。
关于我在升级过程中发现的一个注意事项,你不能简单地为每个数据集添加数据集(),你必须生成单独的数据集类型(条形图、线形图、散点图等),然后使用 SetData()对于适当的类型,触发渲染。
这里是 example code.
就我而言,我会按照 mpandroidcharts
的建议进行所有操作
我仍然在“y 轴右”和“y 轴左”
上得到相同的比例
罪魁祸首是
combinedChart.axisLeft?.axisMinimum = //some calculations
combinedChart.axisLeft?.axisMaximum = //some calculations
combinedChart.axisRight?.axisMinimum = //some calculations
combinedChart.axisRight?.axisMaximum = //some calculations
当您从条形图或折线图中复制您的完美代码时,基本上是复制粘贴错误,在需要时设置轴的最小值和最大值。
我希望我的图表有两个像图像一样具有不同比例的 YAxis。如何更改每个轴的比例?
MPAndroidChart库的作者在这里明确指出,(MPChart - Scatter Chart and LineChart in same plot),目前还没有这个功能。所以,我也在寻找更好的方法。
因此,您可以将两种不同的图表类型显示为一个,仍然使用这个库,只是将它们重叠。
我在我这边完成了如下操作:
1。编辑 activity 布局 xml,将 FrameLayout 作为图表容器。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
.......
<FrameLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:id="@+id/root_view">
</FrameLayout>
.......
</LinearLayout>
- 现在,在 Activity class 中,构建图表对象并将它们附加到之前的容器:
// construct the charts, as different objects
// make sure to have valid Data Sets
LineChartItem lineChart = new LineChartItem(lineChartDataset, getApplicationContext());
BarChartItem barChart = new BarChartItem(barChartDataset, getApplicationContext());
// get the charts' container
FrameLayout frameLayout = (FrameLayout) findViewById(R.id.root_view);
// populate the container with the charts' views
frameLayout.addView(lineChart.getView(0, null, getApplicationContext()));
frameLayout.addView(barChart.getView(1, null, getApplicationContext()));
PROs/CONs对于这样的做法:
专业人士
CON
我希望能快速发布这个具有此选项的伟大库。预先感谢 Philipp Jahoda!
Version 2.0.0-beta 与 CombinedChart
一起在周末发布,它允许在一个图表中绘制折线图、条形图、散点图和蜡烛数据。所以该功能终于可用。
关于我在升级过程中发现的一个注意事项,你不能简单地为每个数据集添加数据集(),你必须生成单独的数据集类型(条形图、线形图、散点图等),然后使用 SetData()对于适当的类型,触发渲染。
这里是 example code.
就我而言,我会按照 mpandroidcharts
我仍然在“y 轴右”和“y 轴左”
上得到相同的比例罪魁祸首是
combinedChart.axisLeft?.axisMinimum = //some calculations
combinedChart.axisLeft?.axisMaximum = //some calculations
combinedChart.axisRight?.axisMinimum = //some calculations
combinedChart.axisRight?.axisMaximum = //some calculations
当您从条形图或折线图中复制您的完美代码时,基本上是复制粘贴错误,在需要时设置轴的最小值和最大值。