设计师送我的图表看起来像这样:如何使MPAndroidChart背景像这样?
但我不知道如何使背景像,becase的这个图表背景有,你可以看到两种不同的颜色,对于每一个变化图表项目。
这里是我的结果:
可能使图表背景的设计师制作的呢?
设计师送我的图表看起来像这样:如何使MPAndroidChart背景像这样?
但我不知道如何使背景像,becase的这个图表背景有,你可以看到两种不同的颜色,对于每一个变化图表项目。
这里是我的结果:
可能使图表背景的设计师制作的呢?
您可以绘制组合图表[see this]。
你提到了一个绘制图的技巧。在组合图表中,绘制具有最大值的条形图并根据需要设置颜色。
我想@abhinav意思是这样的:
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.chart);
//
// configure chart
final CombinedChart chart = (CombinedChart) findViewById(R.id.chart);
// prepare labels on x-axis
final List<String> labels = new ArrayList<>();
labels.add("MAY 22");
labels.add("MAY 23");
labels.add("MAY 24");
labels.add("MAY 25");
labels.add("MAY 26");
labels.add("MAY 27");
labels.add("MAY 28");
// prepare data for line graph
final List<Entry> ratesEntries = new ArrayList<>();
ratesEntries.add(new Entry(85f, 0));
ratesEntries.add(new Entry(75f, 1));
ratesEntries.add(new Entry(15f, 2));
ratesEntries.add(new Entry(40f, 3));
ratesEntries.add(new Entry(75f, 4));
ratesEntries.add(new Entry(60f, 5));
ratesEntries.add(new Entry(0f, 6));
final List<ILineDataSet> ratesDatasets = new ArrayList<>();
ratesDatasets.add(createRatesDataset(ratesEntries));
// prepare data for bar graph
final BarData periodBarData = new BarData(labels);
List<BarEntry> periodEntries;
periodEntries = new ArrayList<>();
periodEntries.add(new BarEntry(100f, 0));
periodEntries.add(new BarEntry(100f, 2));
periodEntries.add(new BarEntry(100f, 4));
periodEntries.add(new BarEntry(100f, 6));
BarDataSet periodDataset;
periodDataset = new BarDataSet(periodEntries, null);
periodDataset.setColor(Color.parseColor("#ccd2c0ff")); // transparency 80%
periodDataset.setDrawValues(false);
periodDataset.setBarSpacePercent(0);
periodBarData.addDataSet(periodDataset);
periodEntries = new ArrayList<>();
periodEntries.add(new BarEntry(100f, 1));
periodEntries.add(new BarEntry(100f, 3));
periodEntries.add(new BarEntry(100f, 5));
periodDataset = new BarDataSet(periodEntries, null);
periodDataset.setColor(Color.parseColor("#ccc0daff")); // transparency 80%
periodDataset.setDrawValues(false);
periodDataset.setBarSpacePercent(0);
periodBarData.addDataSet(periodDataset);
// prepare data for combined chart
final CombinedData data = new CombinedData(labels);
data.setData(new LineData(labels, ratesDatasets));
data.setData(periodBarData);
chart.setData(data);
}
private ILineDataSet createRatesDataset(final List<Entry> entries) {
final LineDataSet d = new LineDataSet(entries, null);
d.setColor(Color.BLUE);
d.setLineWidth(2.5f);
d.setCircleColor(Color.BLUE);
d.setCircleRadius(5f);
d.setFillColor(Color.BLUE);
d.setDrawCubic(true);
d.setDrawValues(false);
d.setValueTextSize(10f);
d.setValueTextColor(Color.BLUE);
d.setAxisDependency(YAxis.AxisDependency.LEFT);
return d;
}
注意,酒吧alpha通道有80%(详细信息请看这里:How to make a background 20% transparent on Android)。
在您添加图表的链接看起来不像我的。你能为我的背景添加示例代码吗? – Zookey
您可以使用两个BarDataSet绘制条形图并为这些组赋予不同的颜色。另外,将条之间的间距设置为0f。你会得到相同的背景。 – abhinav
编写代码示例,我会接受你的回答。 – Zookey