我正在使用MPAndroidChart库发行版v2.我正在尝试显示3个条形图,数据来自数据库.不幸的是,不是看到3个条形数据,而是用相同的结果查看它们.查看截图.谢谢你的帮助.
int [] x = {1,2,3};
Cursor c = db.rawQuery(sql, null);
int count = c.getCount();
float value1 ;
float value2 ;
float value3 ;
String[] mesi = new String[count];
for(int n=0; n<count; n++) {
c.moveToNext();
mesi[n]= c.getString(0);
value1 = c.getFloat(1);
value2 = c.getFloat(2);
value3 = c.getFloat(3);
ArrayList<String> xVals = new ArrayList<String>();
for (int i = 0; i <x.length; i++) {
xVals.add(x.length + " " + mChart.getUnit());
}
ArrayList<BarEntry> yVals1 = new ArrayList<BarEntry>();
ArrayList<BarEntry> yVals2 = new ArrayList<BarEntry>();
ArrayList<BarEntry> …
Run Code Online (Sandbox Code Playgroud) 我一直在使用MPAndroidChart库来显示我正在构建的应用程序中当前正在播放的音频的线图.但是我希望这样做,以便用户可以滚动图表,并且播放音频的播放位置与图表滚动成比例地变化.
但是,我似乎找不到一种方法来获得最接近的x-index位置到图的中心
正如您在屏幕截图中看到的,我希望能够在用户滚动时获得红线后面的x-index,但我似乎无法弄清楚如何执行此操作.
任何帮助将非常感激.
谢谢Corey B :)
我怎样才能做到这一点?我试图在Xcode中找到方法,但我不能 - 在android文档中他们有不同的名字
我想使用不渲染任何x轴或网格线的ios图表渲染(堆叠)水平条形图.我已经禁用了我能找到的每个设置,但是底部的x轴仍然呈现.
func setUpBarChart() {
// General bar chart settings
barChart.pinchZoomEnabled = false
barChart.drawGridBackgroundEnabled = false
barChart.drawBarShadowEnabled = false
barChart.drawValueAboveBarEnabled = false
barChart.drawBordersEnabled = false
barChart.drawMarkers = false
barChart.legend.enabled = false
barChart.descriptionText = ""
barChart.drawBordersEnabled = false
// Left-axis settings
barChart.leftAxis.drawLabelsEnabled = false
barChart.leftAxis.drawTopYLabelEntryEnabled = false
barChart.leftAxis.drawAxisLineEnabled = false
// x-axis settings
barChart.xAxis.drawAxisLineEnabled = false
barChart.xAxis.drawGridLinesEnabled = false
barChart.xAxis.drawLabelsEnabled = false
barChart.xAxis.enabled = false
// add some dummy data
let entry = BarChartDataEntry(values: [10,2,5], xIndex: 0)
let set = BarChartDataSet(yVals: [entry], …
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库创建条形图。
我们可以使用以下内容在条形上方显示条形值。
mChart.setDrawValueAboveBar(false);
Run Code Online (Sandbox Code Playgroud)
或者我们可以使用这个:
barDataSet.setDrawValues(true);
Run Code Online (Sandbox Code Playgroud)
在条形图本身中显示条形图值。我想知道是否可以为这些值设置自定义位置。例如在y轴下方。
解
public class TextBarChartRenderer extends BarChartRenderer {
public TextBarChartRenderer(BarDataProvider chart, ChartAnimator animator, ViewPortHandler viewPortHandler) {
super(chart, animator, viewPortHandler);
}
@Override
public void drawValues(Canvas c) {
List<IBarDataSet> dataSets = mChart.getBarData().getDataSets();
final float valueOffsetPlus = Utils.convertDpToPixel(22f)
float negOffset;
for (int i = 0; i < mChart.getBarData().getDataSetCount(); i++) {
IBarDataSet dataSet = dataSets.get(i);
applyValueTextStyle(dataSet);
float valueTextHeight = Utils.calcTextHeight(mValuePaint, "8");
negOffset = valueTextHeight + valueOffsetPlus;
BarBuffer buffer = mBarBuffers[i];
float left;
float right;
float top;
float …
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.
我有MPAndroidChart正常工作并正确填充图表数据,但我想要一种方法来拖动和选择图表的一个区域.选择完成后,需要返回所选点的x值和y值.
我看不到任何做我想做的事.我在https://github.com/PhilJay/MPAndroidChart/wiki/Highlighting中找到了这个突出显示的功能,但我不认为这是我正在寻找的正确的事情.
我正在做什么,如果是这样,我指出了正确的方向.
我如何使用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)