我正在使用MPAndroid Chart库在我的Android应用程序中绘制折线图.图的状态如下:

我想改变它:

所以我想改变MPAnroid Line Chart的点,在图书馆中称为"圆孔".我想把这个洞换成可画的.我有办法做到这一点吗?
圆孔更改代码在这里:
LineDataSet set1 = new LineDataSet(yVals, "DataSet 1");
set1.setDrawCircleHole( true );
set1.setCircleColor( Color.BLACK );
Run Code Online (Sandbox Code Playgroud)
库参考在这里:MPAndroidChart
在条形图中我创建的第一行和最后一行一直被切成两半(即使我添加了额外的条).这也会导致条形图上方的值不合适.我在一个片段内膨胀这个.
轴也只增加0.9而不是1.为了解决这个问题,我需要实现AxisValueFormatter接口吗?
图片:
代码:.java
chart = (BarChart) view.findViewById(R.id.chart1);
// Chart settings
chart.setDrawGridBackground(false);
chart.setHighlightFullBarEnabled(true);
chart.setDrawBarShadow(false);
chart.setDrawValueAboveBar(true);
chart.setDescription("");
// Settings for X-Axis
XAxis xAxis = chart.getXAxis();
xAxis.setDrawGridLines(false);
xAxis.setEnabled(true);
xAxis.setDrawLabels(true);
xAxis.setPosition(XAxisPosition.BOTTOM);
// Settings for Y-Axis
YAxis leftAxis = chart.getAxisLeft();
YAxis rightAxis = chart.getAxisRight();
leftAxis.setAxisMinValue(0f);
rightAxis.setAxisMinValue(0f);
BARENTRY = new ArrayList<>();
BarEntryLabels = new ArrayList<String>();
BARENTRY.add(new BarEntry(2f, 1));
BARENTRY.add(new BarEntry(3f, 2));
BARENTRY.add(new BarEntry(4f, 3));
BARENTRY.add(new BarEntry(5f, 4));
BARENTRY.add(new BarEntry(6f, 5));
Bardataset = new BarDataSet(BARENTRY, "Projects");
Bardataset.setColors(ColorTemplate.COLORFUL_COLORS);
BARDATA = new BarData(Bardataset);
chart.setData(BARDATA);
chart.invalidate(); // refresh
chart.animateY(1500); …Run Code Online (Sandbox Code Playgroud) 我正在使用MPAndroidChart库.
我想修改条形图中的条形大小.你能告诉我们在mp android图表中检查条形图中条形图的修改大小的位置
我正在使用MPChartlib作为基本的"条形图"(3个条形和0到100之间的值).
应用程序的背景是黑暗的,所以我想将文本设置为白色,但是当我在chart.xml中设置了存储在string.xml中的颜色代码"FFFFFF"但文本显示为深蓝色时.
//Axe X
XAxis x = barchart.getXAxis();
x.setPosition(XAxisPosition.BOTTOM);
x.setTextColor(R.color.chart_color);
x.setAxisLineColor(R.color.chart_color);
// Design
barchart.setDragEnabled(false);
barchart.setDrawGridBackground(false);
barchart.setTouchEnabled(false);
barchart.setHighlightEnabled(false);
barchart.setMaxVisibleValueCount(101);
barchart.setDescription(null);
barchart.setGridBackgroundColor(R.color.chart_color);
barchart.invalidate(); // refresh
//Axe Y
barchart.getAxisLeft().setAxisMaxValue(100);
barchart.getAxisLeft().setDrawTopYLabelEntry(true);
barchart.getAxisLeft().setDrawAxisLine(false);
barchart.getAxisLeft().setDrawGridLines(false);
barchart.getAxisLeft().setAxisLineColor(R.color.chart_color);
barchart.getAxisLeft().setTextColor(R.color.chart_color);
barchart.getAxisRight().setAxisMaxValue(100);
barchart.getAxisRight().setDrawTopYLabelEntry(true);
barchart.getAxisRight().setAxisLineColor(R.color.chart_color);
barchart.getAxisRight().setTextColor(R.color.chart_color);
Run Code Online (Sandbox Code Playgroud)
我尝试了很多东西和研究,但找不到问题,lib是不是使用相同类型的颜色代码或什么?
谢谢你的帮助,Alex
我使用MPAndroidChart来显示股票图表,但Y线值非常接近,图表是这样的
我可以像这样使用手指缩放 
这是我想要的默认外观
有没有办法设置Y线最大值和最小值或设置默认缩放.
我尝试了lib函数,但它不起作用
我想在LineChart这个中心设置一条垂直线:
滚动到每个点时,它可以通知更改下面的日期(橙色日期字段).它可以通过单击箭头按钮以编程方式向左或向右移动.
目前,我可以使用以下代码设置视口并允许移动到中心:
LineData data = new LineData(xVals, dataSets);
mChart.setScaleMinima((float) data.getXValCount() / 7f, 1f);
mChart.moveViewTo(0, 7, YAxis.AxisDependency.LEFT);
Run Code Online (Sandbox Code Playgroud)
得到结果:
如何绘制和设置如上所示的垂直线?
更新:
对于听众,我认为OnChartGestureListener onChartTranslate(MotionEvent me, float dX, float dY)可能有所帮助.我需要的是2点之间的距离以及如何计算当前视口中有多少点.有谁知道吗?
是否可以LimitLine用自定义布局替换?所以它看起来像这样:
我看到几个解决方案:
TextView值的存储位置坐标,并在该位置添加自定义布局.但是我怎么能达到这个目的TextView呢?也许有人遇到了这个问题.请分享您的经验.
编辑:最新的部分解决方案
经过长时间的搜索解决方案,我开始通过Limit Line的坐标以编程方式添加自定义视图.
屏幕总体布局如下:
坐标计算非常简单.X从图表坐标和已知Y:
Y =((max - lastValue)*height)/((max + min)+ y)
所以在这一点上我基本上知道我需要的位置.虽然由于父母的缘故,我不确定这是对的ScrollView.
下一步是在这些坐标处添加自定义布局 (x, y)
这就是新问题.我试图将视图添加到顶部RelativeLayout.它被添加但它不会一起移动ScrollView.因此,需要在Chart上添加该视图.看看我是如何尝试实现这一目标的:
private void addCustomLayoutOnLimitLine(final double lastValue) {
mChart.post(new Runnable() { //check location when view is created
public void run() {
int[] chartLocationOnScreen = new int[2];
mChart.getLocationOnScreen(chartLocationOnScreen);
int x = chartLocationOnScreen[0];
int y = chartLocationOnScreen[1];
int width = mChart.getWidth();
int height = …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,我有一个BarChart和一个CombinedChart但他们花了1-1.5秒,直到他们显示数据图表.
我从数据库中检索数据,而Volley正在请求获取数据,但我希望两个图表用于显示数据的时间将尽可能减少.
我想它可以通过导入的形式将库引入项目:
compile 'com.github.PhilJay:MPAndroidChart:v2.2.5'
Run Code Online (Sandbox Code Playgroud)
但我找不到任何其他方式来导入该库,或者是否正确的方法来执行此操作.也许这可能与我为此目的使用Volley的事实有关.
我该怎么做才能减少两个图表显示数据所花费的时间?它可以与我导入的表单相关吗?
任何建议将不胜感激.
提前致谢!
我正在显示实时图表,该图表应按秒显示值。我的 X 轴是以秒为单位的时间。但是我无法在 x 轴上显示固定的时间间隔,即。0,1,2,...等等。X 轴值是自动计算的,两个 x 值之间的时间间隔变为 20 秒,这是我不想要的。我需要你的帮助来解决这个问题。
任何帮助将不胜感激。