得到以下代码:
graph = (LineChart) convertView.findViewById(R.id.graph);
graph.getPaint(Chart.PAINT_LEGEND_LABEL).setColor(Color.BLUE);
graph.getPaint(Chart.PAINT_YLABEL).setColor(Color.BLUE);
graph.getPaint(Chart.PAINT_XLABEL).setColor(Color.BLUE);
Run Code Online (Sandbox Code Playgroud)
但是仍然是X/Y值标签的颜色以及传说中的标签保持黑色.我错过了什么吗?还有其他方法来设置这些颜色吗?
例如,这一行可以工作,并为每个数据点生成蓝色值标签:
graph.getPaint(Chart.PAINT_VALUES).setColor(Color.BLUE);
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我打算在MPAndroidChart的折线图中查找特定点,然后显示标记以在按下按钮后突出显示该点.给出的示例是标记仅在触摸事件后显示,在我的情况下是不同的.我尝试下面的代码,但无济于事,可以请一些人教我,我会很感激.
Highlight h = new Highlight((int) valIndex, linechart2.getData().getDataSetCount());
linechart2.highlightValue(h, true);
mv2.refreshContent2(valueYAxis.get((int) valIndex), h);
linechart2.getMarkerView();
linechart2.setDrawMarkerViews(true);
linechart2.getData().setHighlightEnabled(true);
// RefreshChart();
linechart2.invalidate();
Run Code Online (Sandbox Code Playgroud) 我正在使用MPAndroid图表库来绘制折线图,我在LineChart上设置动态数据,但有时我得到的数据为某些索引的值为0.0,我不希望在任何索引上显示0.0值.如何跳过具有0.0值的索引.
ArrayList<Entry> entries = new ArrayList<>();
entries.add(new Entry(23.00f, 0));
entries.add(new Entry(40.00f, 1));
entries.add(new Entry(00.00f, 2)); // want to skip this index 2(Mar)
entries.add(new Entry(00.00f, 3)); // want to skip this index 3 (Apr)
entries.add(new Entry(94.00f, 4));
entries.add(new Entry(20.00f, 5));
Run Code Online (Sandbox Code Playgroud)
但我想得到一些像这样的东西
有什么想法吗?
谢谢
我在我的项目中为温度报告实现了折线图(MPAndroidChart 库)。在 X 轴上应该绘制日期时间,并且应该绘制 Y 轴温度。
我只是在 X 轴标签中将日期时间添加为字符串,但它已折叠。所以请任何人指导我。
我的 XAxis 值没有对齐。我应该修改什么设置?
以下是到目前为止我在代码中的内容, .setLabelsToSkip 不起作用,因为我使用的是 3.0.1 版。
XAxis xAxis = mChart.getXAxis();
xAxis.setTypeface(mTfLight);
xAxis.setGranularity(1f);
xAxis.setCenterAxisLabels(true);
xAxis.setDrawLabels(true);
xAxis.setGranularity(1f);
xAxis.setGranularityEnabled(true);
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
xAxis.setTextColor(Color.WHITE);
xAxis.setTextSize(15);
Run Code Online (Sandbox Code Playgroud)
这是我的 LabelFormatter 类:
import com.github.mikephil.charting.components.AxisBase;
import com.github.mikephil.charting.formatter.IAxisValueFormatter;
public class LabelFormatter implements IAxisValueFormatter {
private final String[] mLabels;
public LabelFormatter(String[] labels) {
mLabels = labels;
}
@Override
public String getFormattedValue(float value, AxisBase axis) {
return mLabels[(int) value];
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的主要活动 setdata 方法:
private void setData() {
ArrayList<BarEntry> entries = new ArrayList<>();
String labels[]=new String[5];
for (Cars c : …
Run Code Online (Sandbox Code Playgroud) 我有一个CombinedChart
,我希望LineChart
将左轴作为参考,BarChart
并将右轴作为参考,但我无法得到它.
我正在尝试以下代码:
barDataSet.setAxisDependency(YAxis.AxisDependency.RIGHT);
lineDataSet.setAxisDependency(YAxis.AxisDependency.LEFT);
Run Code Online (Sandbox Code Playgroud)
但现在两个图表(LineChart
和BarChart
)都在左边(混合它们,右轴已经消失).
左右轴具有不同的粒度.
如何才能正确地将每个图表作为一个不同的Y轴(分别为左或右)作为参考?
提前致谢!
我如何使用MPAndroidChart实现这一目标?
使用版本:com.github.PhilJay:MPAndroidChart:v3.1.0-alpha
为图例和饼图边距添加代码:
private void setPieChartData() {
///sf/answers/3538604191/
pieChart.setUsePercentValues(true);
pieChart.getDescription().setEnabled(false);
pieChart.setExtraOffsets(5,5,10,5);
pieChart.setDragDecelerationFrictionCoef(0.9f);
pieChart.setDrawCenterText(false);
pieChart.setDrawHoleEnabled(false);
//pieChart.animateY(1000, Easing.EasingOption.EaseInOutCubic);
ArrayList<PieEntry> yValues = new ArrayList<>();
yValues.add(new PieEntry(34f,"Ilala"));
yValues.add(new PieEntry(56f,"Temeke"));
yValues.add(new PieEntry(66f,"Kinondoni"));
yValues.add(new PieEntry(45f,"Kigamboni"));
yValues.add(new PieEntry(45f,"Kigamboni2"));
pieChart.setDrawEntryLabels(false);
PieDataSet dataSet = new PieDataSet(yValues, "Desease Per Regions");
dataSet.setSliceSpace(0.1f);
dataSet.setDrawValues(false);
dataSet.setSelectionShift(5f);
dataSet.setColors(ColorTemplate.VORDIPLOM_COLORS);
PieData pieData = new PieData((dataSet));
pieData.setValueTextSize(10f);
pieData.setValueTextColor(Color.BLACK);
pieChart.setData(pieData);
pieChart.setDrawSliceText(false);
setLegend();
}
private void setLegend() {
Legend l = pieChart.getLegend();
l.setFormSize(10f); // set the size of the legend forms/shapes
l.setForm(Legend.LegendForm.SQUARE); // set …
Run Code Online (Sandbox Code Playgroud) 想知道是否可以根据 y 轴值是正值还是负值来更改折线图的线条和填充颜色。下面是一个例子
下面是我可以使用以下代码实现的目标
private fun setUpLineChart() {
val lineData = getDataSet()
view.lineChart.apply {
data = lineData
description.isEnabled = false
setScaleEnabled(false)
setTouchEnabled(false)
legend.isEnabled = false
axisLeft.apply {
setDrawLabels(false)
setDrawGridLines(false)
setDrawAxisLine(false)
spaceBottom = 30f
}
axisRight.apply {
setDrawLabels(false)
setDrawGridLines(false)
setDrawAxisLine(false)
}
xAxis.apply {
setDrawLabels(false)
setDrawGridLines(false)
setDrawAxisLine(false)
}
animateXY(700, 1000, Easing.EaseInOutQuad)
}
}
private fun getDataSet(): LineData {
val entries = mutableListOf<Entry>()
val dataList = listOf(1, 20, -20, 33, 54, 7, -18, 2)
dataList.forEachIndexed { index, element ->
entries.add(Entry(index.toFloat(), element.toFloat()))
}
val …
Run Code Online (Sandbox Code Playgroud)