我正在尝试创建一个包含2个Barchart和一个linechart数据集的组合图表。所有数据集的X轴都应该相同。在Barchart之间应该有一个300%的空间集,其中包含BarData setGroupSpace(300F)。这就是问题所在,我不能让linechart也有这个空间,所以linechart的点总是在这2条之间。但看起来linechart有自己的X轴。此外,在X轴上的标签应移位,以2条为中心。有什么提示怎么做吗?
private void setupChart(){
chart.setDrawOrder(new CombinedChart.DrawOrder[]{CombinedChart.DrawOrder.BAR, CombinedChart.DrawOrder.BUBBLE, CombinedChart.DrawOrder.CANDLE,
CombinedChart.DrawOrder.LINE, CombinedChart.DrawOrder.SCATTER});
chart.getAxisLeft().setDrawGridLines(false);
chart.getXAxis().setDrawGridLines(false);
XAxis x = chart.getXAxis();
x.setTextSize(14f);
x.setPosition(XAxis.XAxisPosition.BOTTOM);
YAxis y = chart.getAxisLeft();
y.setEnabled(false);
chart.setDrawGridBackground(false);
chart.setDrawBarShadow(false);
chart.setVisibleXRangeMaximum(10f);
chart.setVisibleXRangeMinimum(10f);
chart.setDescription("");
ArrayList<String> labels = new ArrayList<String>();
for (int i = 0; i < itemcount; i++) {
String timeString = formatter.format(i * 1000);
labels.add(timeString);
}
CombinedData data = new CombinedData(labels);
data.setData(generateLineData());
data.setData(generateBarData());
chart.setData(data);
GraphPopup popup = new GraphPopup(this, R.layout.view_graph_tooltip);
chart.setMarkerView(popup);
Legend legend = chart.getLegend();
legend.setTextSize(14f);
legend.setPosition(Legend.LegendPosition.BELOW_CHART_CENTER);
//chart.animateY(2000);
chart.setVisibleXRangeMaximum(10f);
chart.setVisibleXRangeMinimum(10f);
chart.moveViewToX(entries1.size());
buttonAdd = (Button) findViewById(R.id.buttonAdd);
buttonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dataset0.addEntry(new BarEntry(3, dataset0.getEntryCount()));
dataset1.addEntry(new BarEntry(12, dataset1.getEntryCount()));
// labels.add(labels.size(), "x" + labels.size());
chart.notifyDataSetChanged(); // let the chart know it's data changed
chart.setVisibleXRangeMaximum(10f);
chart.setVisibleXRangeMinimum(10f);
chart.moveViewToX(entries1.size());
//chart.invalidate(); // refresh
}
});
}
private LineData generateLineData() {
ArrayList<Entry> entries = new ArrayList<Entry>();
ArrayList<String> labels = new ArrayList<String>();
for (int index = 0; index < itemcount; index++) {
entries.add(new Entry(rand.nextInt(22), index));
String timeString = formatter.format(index * 3600*24*1000);
labels.add(timeString);
}
LineData d = new LineData(labels);
LineDataSet set = new LineDataSet(entries, "Line DataSet");
set.setColor(Color.RED);
set.setLineWidth(2.5f);
set.setCircleColor(Color.RED);
set.setCircleSize(5f);
set.setFillColor(Color.WHITE);
set.setDrawCubic(true);
set.setDrawValues(true);
set.setValueTextSize(10f);
set.setValueTextColor(Color.RED);
set.setAxisDependency(YAxis.AxisDependency.LEFT);
d.addDataSet(set);
return d;
}
private BarData generateBarData() {
ArrayList<String> labels0 = new ArrayList<String>();
for (int i = 0; i < itemcount; i++) {
BarEntry entry = new BarEntry(rand.nextInt(22) + 8, i);
entries.add(entry);
String timeString = formatter.format(i * 3600*24*1000);
labels0.add(timeString);
}
dataset0.setColor(getResources().getColor(R.color.graph_bar));
dataset0.setHighLightColor(getResources().getColor(R.color.graph_bar_selected));
dataset0.setBarSpacePercent(0f);
ArrayList<String> labels1 = new ArrayList<String>();
for (int j = 0; j < itemcount; j++) {
BarEntry entry = new BarEntry(rand.nextInt(22) + 0, j);
entries1.add(entry);
String timeString = formatter.format(j * 3600*24*1000);
labels1.add(timeString);
}
dataset1.setColor(getResources().getColor(R.color.color1));
dataset1.setHighLightColor(getResources().getColor(R.color.color2));
dataset1.setBarSpacePercent(0f);
BarData d = new BarData(labels0);
d.addDataSet(dataset0);
d.addDataSet(dataset1);
d.setGroupSpace(300f);
return d;
}
单个条之间的间距:
BardataSet.SetBarspacePercent(...);
数据集之间的空间:
Bardata.SetGroupSpace(...);
以百分比为单位的值。
来源链接:https://github.com/philjay/mpandroidchart/issues/197
我想在Android中用mpandroidchart在LineChart中看到一些数据。但这些数据有临界点。我怎样才能解决这个问题,并且在图表中也能看到截止点呢?
我需要在我的Android应用中画一张“闭图”,像这样: 数据的xIndex先增加后减少。如本例所示: 当我尝试用MPAndroidChart中的数据绘制一条线时,它只呈现数据的前半部分(在xIndex下降之前)。其他数据未显示。 我怎样才能用MPAndroidChart正确地绘制这个数据呢?
Highcharts 组合图 以下实例演示了柱形图,线条图,饼图的组合。 我们在前面的章节已经了解了 Highcharts 基本配置语法。接下来让我们来看下其他的配置。 配置 series 配置 设置 series 的 type 属性为 column/line/pie ,series.type 描述了数据列类型。默认值为 "line"。 var series = { type: 'colu
我试图显示几个折线图,但滚动对应该显示图表的页面不起作用。我使用一个位于协调器布局内部的viewpager。 我也想做到以下几点: 退出曲线的线 退出图例中的颜色标签 我知道协调器布局和Viewpager有时需要一些棘手的变通方法,但直到这一刻我都找不到解决方案。我需要添加更多的图表... 主要XML: null 和图表片段XML: null
Highcharts 组合图 以下实例演示了双Y轴, 柱形图,线条图组合。 我们在前面的章节已经了解了 Highcharts 基本配置语法。接下来让我们来看下其他的配置。 配置 yAxis 配置 在 yAxis 属性中添加两条Y轴的值 。 var yAxis = [{ // 第一条Y轴 }, { // 第二条Y轴 } }] 实例 文件名:highcharts_combin