- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想做一个水平条形图。我在左轴上总共有 24 个标签。我在绘制条形图时遇到的问题很少:
1) 当条形图开始时,我显示的条目数量有限。用户可以滚动查看其他条目。正如您在图 1 中看到的,一个条形图出现在 Y 轴“下方”。我无法弄清楚如何将所有条形图保持在轴的顶部。
2) 第二个问题是值(或条)向下移动了一个。 “00 AM”标签前面没有栏,但在最后一个条目 11 AM 下方有一个额外的栏,如第二张图片所示。如何移动条形图?
3) 与其为每个标签添加 tars,不如使用它们来显示这些标签之间的条形图?
以下是我得到的图表:
这是代码 fragment 的代码:
public class TimeCravingBarChart extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.timecraving_graph);
final GraphicalView gv =createIntent();
RelativeLayout rl=(RelativeLayout)findViewById(R.id.timegraph);
LayoutParams l1 = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
rl.addView(gv,l1);
}
public GraphicalView createIntent() {
String[] titles = new String[] { "Urge Level"};
List<double[]> values = new ArrayList<double[]>();
values.add(new double[] { 6, 5, 3, 2, 6, 1, 6, 5, 3, 2, 6, 1, 6, 5, 3, 2, 6, 1, 6, 5, 3, 2, 6, 1});
int[] colors = new int[] { Color.parseColor("#77c4d3")};
XYMultipleSeriesRenderer renderer = buildBarRenderer(colors);
renderer.setOrientation(Orientation.VERTICAL);
setChartSettings(renderer, "Urge vs TimeOfTheDay Pattern", "Time of the day", "Urge", 1,
12, 0, 7, Color.WHITE, Color.WHITE);
renderer.setXLabels(0);
renderer.setYLabels(10);
renderer.setXRoundedLabels(false);
//renderer.setYRoundedLabels(false);
renderer.addXTextLabel(0, "00 AM ");
renderer.addXTextLabel(1, "01 AM ");
renderer.addXTextLabel(2, "02 AM ");
renderer.addXTextLabel(3, "03 AM ");
renderer.addXTextLabel(4, "04 AM ");
renderer.addXTextLabel(5, "05 AM ");
renderer.addXTextLabel(6, "06 AM ");
renderer.addXTextLabel(7, "07 AM ");
renderer.addXTextLabel(8, "08 AM ");
renderer.addXTextLabel(9, "09 AM ");
renderer.addXTextLabel(10, "10 AM ");
renderer.addXTextLabel(11, "11 AM ");
renderer.addXTextLabel(12, "12 Noon ");
renderer.addXTextLabel(13, "1 PM ");
renderer.addXTextLabel(14, "2 PM ");
renderer.addXTextLabel(15, "3 PM ");
renderer.addXTextLabel(16, "4 PM ");
renderer.addXTextLabel(17, "5 PM ");
renderer.addXTextLabel(18, "6 PM ");
renderer.addXTextLabel(19, "7 PM ");
renderer.addXTextLabel(20, "8 PM ");
renderer.addXTextLabel(21, "9 PM ");
renderer.addXTextLabel(22, "10 PM ");
renderer.addXTextLabel(23, "11 PM ");
int length = renderer.getSeriesRendererCount();
for (int i = 0; i < length; i++) {
SimpleSeriesRenderer seriesRenderer = renderer.getSeriesRendererAt(i);
seriesRenderer.setDisplayChartValues(true);
}
final GraphicalView grfv = ChartFactory.getBarChartView(TimeCravingBarChart.this, buildBarDataset(titles, values), renderer,Type.DEFAULT);
return grfv;
}
protected XYMultipleSeriesRenderer buildBarRenderer(int[] colors) {
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
renderer.setAxisTitleTextSize(20);
renderer.setLabelsTextSize(20);
renderer.setLegendTextSize(20);
renderer.setPanEnabled(true, false);
renderer.setBarSpacing(0);
renderer.setOrientation(Orientation.VERTICAL);
renderer.setZoomEnabled(false, false);
renderer.setMarginsColor(Color.parseColor("#EEEDED"));
renderer.setXLabelsColor(Color.WHITE);
renderer.setYLabelsColor(0,Color.WHITE);
renderer.setApplyBackgroundColor(false);
int length = colors.length;
for (int i = 0; i < length; i++) {
SimpleSeriesRenderer r = new SimpleSeriesRenderer();
r.setColor(colors[i]);
renderer.addSeriesRenderer(r);
}
return renderer;
}
protected XYMultipleSeriesDataset buildBarDataset(String[] titles, List<double[]> values) {
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
int length = titles.length;
for (int i = 0; i < length; i++) {
CategorySeries series = new CategorySeries(titles[i]);
double[] v = values.get(i);
int seriesLength = v.length;
for (int k = 0; k < seriesLength; k++) {
series.add(v[k]);
}
dataset.addSeries(series.toXYSeries());
}
return dataset;
}
protected void setChartSettings(XYMultipleSeriesRenderer renderer, String title, String xTitle,
String yTitle, double xMin, double xMax, double yMin, double yMax, int axesColor,
int labelsColor) {
renderer.setYLabelsAlign(Align.RIGHT);
renderer.setYTitle(yTitle);
renderer.setXAxisMin(xMin);
renderer.setXAxisMax(xMax);
renderer.setYAxisMin(yMin);
renderer.setYAxisMax(yMax);
renderer.setMargins(new int[] { 0, 60, 50, 0 }); // top, left, bottom or right
renderer.setAxesColor(axesColor);
renderer.setLabelsColor(labelsColor);
}
}
最佳答案
关于android - 使用 achartengine 绘制水平条形图的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15856806/
我希望在我触摸图表区域的位置显示一个垂直光标。与此行关联的 textview 将显示条的值,即其中点的 y 轴值。当我将手指移到右边的左边同时保持我的手指向下 [向左移动或向右移动] 时,这个垂直光标
我正在为 Android 使用 aChartEngine 的 0.7.0 图表库。我有一个工作 XY 图表,当收到新数据时,它每秒动态变化。但是,它从左到右绘制折线图并最终移出 View 。查看正在绘
我的应用程序需要图形库,而我正在使用 achartengine 图形库。我的应用程序要求图形仅占屏幕的 50%,其他部分用于显示其他一些信息。 achartengine 的图形 API 是否可以有 x
我目前通过将 XYSeriesRenderer 颜色设置为白色来模拟此功能: final XYSeriesRenderer goodEventSeriesRenderer = new XYSe
我注意到我的时间图表的Xlabel与X- 值(value)观。这些点应在标签正上方。在左手边 可以,但是会向右移动。我不知道该怎么解决 我得到什么: http://tinypic.com/r/2uqj
我已使用默认渲染器尝试了以下操作 CategorySeries series = new CategorySeries("First test"); int numSlide = portions.l
我需要实现一个条形图,当用户触摸图表以垂直移动它时,它会读取值。图形向上移动,根据轴 记录值。以 x 轴为值,Y 轴为变量,我需要执行计算。理解示例 最佳答案 看看this例子。您还可以执行 mCha
我正在通过 achartengine 使用圆环图,它工作正常,但我不知道如何获取与用户单击的区域关联的值。通过阅读其他问题,我了解到这是可能的,但发布的修复程序对我不起作用。我尝试过使用 getCur
我在线性布局中使用 AChartEngine 绘制图表。 我在设置圆环图边距时遇到问题。我正在使用以下语句,但边距或中心没有改变。图表根据布局尺寸自动调整大小。有人可以帮忙吗? mRenderer.s
我正在尝试使用 aChartEngine 将 GPS 数据(正在查看或正在使用的卫星)显示为条形图,但我没有在此 View 中显示任何数据。这是我的代码,所以你能告诉我我犯了什么错误吗? public
我正在使用适用于 Android 的 AChartEngine 库,在时间图表中,x 标签与图表上的点不对应,正如您在图像中看到的那样。 看起来图表略微向右移动。有什么提示吗? 最佳答案 这可以用这个
如何在AChartEngine条形图中画笔画? 这对我不起作用: mCurrentSeries = new XYSeries("Sample Data"); mDataset.addSeries(mC
我的图表中有一个 sin 函数,用户可以在上面选择点。但是,当渲染器中唯一的 PointStyle 是 POINT 时,缩放颜色的背景是白色/透明的(不确定,因为我的背景是白色的)。但是,当我添加 P
我想使用 aChartEngine 在我的圆环图中添加可点击区域,但这还没有实现。我想我有办法实现它,所以我正在计划我需要的部分。我不确定的一部分是如何获得图表中心的孔的大小。具体来说,我需要知道内半
这是图表上显示任何最大值的方式。如何确保显示完整点? 最佳答案 手动设置Y轴最大可见值: renderer.setYAxisMax(10.5); 关于android - AChartEngine 只显
我用aChartEngine 创建了一个条形图。我遇到的问题是,为每个值(包括 0)创建条形。这意味着在值为 0 的地方,它会在相邻条形之间创建一个空间。 我想摆脱那个空间 - 我认为唯一的方法是在它
我在我的图 TableView 中的 TimeSeries 中添加了以下 4 个日期。 2-Jan-2013 3-Jan-2013 4-Jan-2013 7-Jan-2013 当我在模拟器中看到结果时
有什么方法可以在折线图中添加目标线? 我想绘制条形图中显示的绿线。 提前致谢。 最佳答案 我找到了答案。 我们可以使用 combinechart 来获取目标线。 // Specifying chart
我在我的 Android 应用程序中使用了 achartengine,并且能够绘制一些折线图。现在我需要绘制某种阈值线,它基本上是一条额外的红色线,它将在图表中的某个 Y 值处运行。 我阅读了有关阈值
在我的应用程序中,我切换了两个不同图表的 View 。第一次绘制的图形看起来很完美,但是当我转到另一个图形并返回时,看起来它绘制了同一个图形的两次,但大小不同,一旦您单击图形,它就会改变并看起来很完美
我是一名优秀的程序员,十分优秀!