我只是尝试使用achartengine演示,但每次我点击某些东西来显示图表时出现错误,说"应用程序AChartengine意外停止.请再试一次".有人知道告诉我该怎么办?我按照本页http://www.achartengine.org/content/goodies.html中建议的说明操作,并使用api level 7的模拟器标准.我有以下错误:
04-15 09:08:43.285: E/dalvikvm(333): Could not find class '[Lorg.achartengine.chart.PointStyle;', referenced from method org.achartengine.chartdemo.demo.chart.AverageTemperatureChart.execute
04-15 09:08:43.325: E/dalvikvm(333): Could not find class 'org.achartengine.model.XYSeries', referenced from method org.achartengine.chartdemo.demo.chart.AbstractDemoChart.addXYSeries
04-15 09:08:43.345: E/dalvikvm(333): Could not find class 'org.achartengine.model.XYMultipleSeriesDataset', referenced from method org.achartengine.chartdemo.demo.chart.AbstractDemoChart.buildBarDataset
04-15 09:08:43.387: E/dalvikvm(333): Could not find class 'org.achartengine.renderer.XYMultipleSeriesRenderer', referenced from method org.achartengine.chartdemo.demo.chart.AbstractDemoChart.buildBarRenderer
04-15 09:08:43.395: E/dalvikvm(333): Could not find class 'org.achartengine.model.CategorySeries', referenced from method org.achartengine.chartdemo.demo.chart.AbstractDemoChart.buildCategoryDataset
04-15 09:08:43.425: E/dalvikvm(333): Could not find class 'org.achartengine.renderer.DefaultRenderer', referenced from method org.achartengine.chartdemo.demo.chart.AbstractDemoChart.buildCategoryRenderer
04-15 09:08:43.425: E/dalvikvm(333): …Run Code Online (Sandbox Code Playgroud) 我在条形图中显示4个值,每个条形图的颜色不同.当我显示图形时,每个条形图彼此重叠.我想在我试过的酒吧之间留出空间,setBarSpacing()通过设置不同的值仍然无法正常工作.有没有其他想法.
package com.example.barchartview;
import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.BarChart.Type;
import org.achartengine.model.CategorySeries;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.Color;
import android.view.View;
import android.widget.LinearLayout;
@SuppressLint("ParserError")
public class MainActivity extends Activity {
private GraphicalView BarChartView;
@SuppressLint("ParserError")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (BarChartView==null )
{
XYMultipleSeriesRenderer renderer = buildBarRenderer();
setChartSettings(renderer);
BarChartView = ChartFactory.getBarChartView(this, getBarDataset(), renderer, Type.DEFAULT);
LinearLayout playout = (LinearLayout) findViewById(R.id.graph2);
playout.addView(BarChartView);
;
}
else
{
BarChartView.repaint();
BarChartView.setVisibility(View.GONE);
}
}
private …Run Code Online (Sandbox Code Playgroud) 我注意到我的时间表的Xlabels与X值不同步.这些点应该在标签的正上方.在左侧它没关系,但它向右移动.我不知道如何解决这个问题我得到的:http: //tinypic.com/r/2uqj905/7 它应该如何:http: //www.achartengine.org/dimages/average_temperature.png 我试过了折线图或将日期转换为双精度但没有效果.任何帮助都会很好.
问候,基督徒
这是我的一些代码:
XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles);
renderer.setPointSize(5.5f);
renderer.setZoomEnabled(false, false);
renderer.setMarginsColor(Color.parseColor("#00FF0000"));
renderer.setAxisTitleTextSize(16);
renderer.setYLabelsAlign(Align.RIGHT);
renderer.setLabelsTextSize(15);
renderer.setLegendTextSize(15);
renderer.setMargins(new int[] { 10, 65, 18, 10 });
int length = renderer.getSeriesRendererCount();
for (int i = 0; i < length; i++) {
XYSeriesRenderer seriesRenderer = (XYSeriesRenderer) renderer
.getSeriesRendererAt(i);
seriesRenderer.setFillPoints(true);
seriesRenderer.setLineWidth(4.0f); // dikte van lijn
}
MinMax minMax = determineMinMax(targetSteps, samples);
setChartSettings(renderer, context.getString(R.string.graph_title),
dateLabelOnScreenType(type),
context.getString(R.string.graph_y_axis), minMax.minX,
minMax.maxX, minY, maxY, Color.WHITE,
Color.BLACK);
renderer.setXLabels(7);
renderer.setYLabels(0);
renderer.setDisplayChartValues(false);
renderer.setShowGrid(true);
renderer.setPanEnabled(false, false); …Run Code Online (Sandbox Code Playgroud) 我正在使用AChartEngine来显示几天的平均值(如果可能,则为2个月).我想提供一个人和一个群体之间的比较.在这一点上,我正在研究如何在x轴上提供日期(即2011年12月15日或2011年12月11日甚至12月15日12月15日).
我不知道如何在AchartEngine中这样做; 如果没有照片,我的文档有点难以理解(对不起).我喜欢这样的东西:使用AChartEngine库来绘制图形,无法获得不同x轴值的值
这是我的代码:
private void setupHistoryChart() {
XYMultipleSeriesRenderer renderer = getBarDemoRenderer();
setChartSettings(renderer);
Intent intent = ChartFactory.getBarChartIntent(this, getBarDemoDataset(), renderer, Type.DEFAULT);
startActivity(intent);
}
public XYMultipleSeriesRenderer getBarDemoRenderer() {
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
renderer.setAxisTitleTextSize(15);
renderer.setChartTitleTextSize(18);
renderer.setLabelsTextSize(12);
renderer.setLegendTextSize(15);
renderer.setMargins(new int[] {20, 30, 15, 0});
SimpleSeriesRenderer r = new SimpleSeriesRenderer();
r.setColor(Color.BLUE);
renderer.addSeriesRenderer(r);
return renderer;
}
private void setChartSettings(XYMultipleSeriesRenderer renderer) {
renderer.setChartTitle("History");
renderer.setChartTitleTextSize((float) 14.0);
renderer.setXTitle("Day");
renderer.setXLabelsAlign(Align.LEFT);
renderer.setYLabelsAlign(Align.LEFT);
renderer.setBarSpacing(0.5);
renderer.setZoomEnabled(true);
renderer.setZoomRate(0.2f);
renderer.setYTitle("Unit)");
renderer.setXAxisMin(1.0);
if(AppStatus.mDayMap.size() == 0){
renderer.setXAxisMax(3.0);
renderer.setYAxisMax(10.0);
}else{
renderer.setXAxisMax(AppStatus.mDayMap.size());
// Get the max Integer …Run Code Online (Sandbox Code Playgroud) 我使用achart引擎成功显示饼图.我想根据屏幕尺寸自定义我的标签文字大小.谢谢提前.
我试图绘制一些实时数据,"实时"这里意味着<10毫秒数据,理想情况下尽可能低.我已经能够让Android快速获取和处理数据,但ACE看起来并不是为了实时使用而设计的.最初的症状是垃圾收集器像没有明天一样开始并完全杀死应用程序.我正在以"滑动窗口"的方式可视化数据,所以我不希望ACE能够实时绘制数万分之一的点数.我已经看了一下它,onDraw for XYChart肯定会分配非常多的情况,它看起来很方便,可能使代码更具可读性,但并不是真正需要的.这甚至可能比以前更糟,所以它可能还没有被注意到.我看到问题#225的bugfix解决了并发问题的变化:
return mXY.subMap(start, stop);
对于:
return new TreeMap<Double, Double>(mXY.subMap(start, stop));
这会创建巨大的分配(仍然由原始子映射支持),当onDraw正在进行时排队更新可能会更好,并且稍后在原子更新或该行上的某些事情处理它们以避免并发问题.
在实在可惜这里是ACE肯定是足够快的我需要什么.它可以完美地完成我在硬件上所需要的东西,但由于它在重绘Android上的分配如此严重,因为它对GC很疯狂.它很快开始分配,而GC正在运行,所以它必须等待,我的应用程序开始看起来像一个定格动画电影.
真正的问题是:期望能够使用ACE实时重绘(平板电脑应用程序)4或6个线性图表是否合理(或者是200毫秒的刷新率),还是没有为这种滥用做好准备?如果答案是否定的.你推荐的其他选择吗?
编辑20130109: 修订版471为小数据集改进了很多东西.2.000点/ 4个图表/ 100毫秒刷新率是可行和平滑的.日志仍然看到"GC_CONCURRENT释放"像疯了一样(大约10 /秒),但没有"WAIT_FOR_CONCURRENT_GC被阻止"这些是使你的应用程序停止运动的showstoppers.在3.000点/ 1图表/ 100毫秒,它显然不顺利.我们再次在logcat和口吃应用程序上发生了"WAIT_FOR_CONCURRENT_GC阻塞"的雪崩.再次看起来我们没有速度问题,只有内存管理问题.
可能看起来我可能会要求ACE做魔法,但是在重构我的所有代码以检索和存储1KHz的遥测数据之后我碰到了这堵墙.一旦我终于看到我的应用程序检索并存储了所有这些实时而没有触发GC,我试图绘制时用ACE拉我的头发:)
我有一个使用AChartEngine库的条形图,如下所示::
public class MainActivity extends Activity {
private String[] mMonth = new String[] {
"Jan", "Feb" , "Mar", "Apr", "May", "Jun",
"Jul", "Aug" , "Sep", "Oct", "Nov", "Dec"
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Getting reference to the button btn_chart
Button btnChart = (Button) findViewById(R.id.btn_chart);
// Defining click event listener for the button btn_chart
OnClickListener clickListener = new OnClickListener() {
@Override
public void onClick(View v) {
// Draw the Income vs Expense Chart
openChart(); …Run Code Online (Sandbox Code Playgroud) 我正在尝试在滚动视图中创建一个achartengine图表,但它不会显示!它只是显示黑屏,但不会崩溃或任何东西.问题是,如果我只是将我的标签更改为图表显示就好了.在我的Java代码中,我确实有renderer.setInScroll(true); 对于图表渲染器.这是我的xml的问题吗?
这是我的xml:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/trendchart"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
</LinearLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
(目前ScrollView中唯一的东西是我计划添加更多元素以使滚动成为必要的图表,我只想先显示它)
此外,我试图在有和没有包裹linearlayout的情况下显示它,它也是相同的结果.
大家好,我是图表应用程序的新手.我为我的Android应用程序使用aChartEngine创建了双线图表.我无法在图表中为y轴设置标签.
我有这样的图表......

我怎么能这样做可以帮助我吗?提前致谢.
我正在使用Achartengine来创建折线图.我现在的月份显示,但上个月的第二行没有显示出来.这是lass和logcat:所以你可以从logcat看到我的日期是正确的,上个月的计数也是正确的.那么为什么它没有显示超出我.
Log Cat:
08-07 16:13:43.969: I/PROJECTCARUSO(11734): DEBUG startdate: 2013-07-01 enddate: 2013-07-31
08-07 16:13:43.969: I/PROJECTCARUSO(11734): count: 9
08-07 16:13:43.979: I/PROJECTCARUSO(11734): DEBUG startdate: 2013-08-01 enddate: 2013-08-31
Run Code Online (Sandbox Code Playgroud)
类:
public class TempHistoryFragment extends Fragment{
private GraphicalView mChartView;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (container == null) {
return null;
}
Calendar cal = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
SimpleDateFormat month_date = new SimpleDateFormat("MMMMMMMMM");
SimpleDateFormat df = …Run Code Online (Sandbox Code Playgroud)