我的x轴值没有对齐。我应该修改什么设置?
x轴未对齐
下面是我到目前为止在代码中使用的。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);
这是我的标签格式化程序类:
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];
}
}
以下是我的主要活动setdata方法:
private void setData() {
ArrayList<BarEntry> entries = new ArrayList<>();
String labels[]=new String[5];
for (Cars c : values) {
if (c.getX()==1){
labels[0] = "Engine 1";
}
if (c.getX()==2){
labels[1] = "Engine 2";
}
if (c.getX()==3){
labels[2] = "Engine 3";
}
if (c.getX()==4){
labels[3] = "Engine 4";
}
if (c.getX()==5){
labels[4] = "Engine 5";
}
entries.add(new BarEntry((float) c.getX(), ((float) c.getY()),labels));
}
BarDataSet set1;
if (mChart.getData() != null && mChart.getData().getDataSetCount() > 0) {
set1 = (BarDataSet) mChart.getData().getDataSetByIndex(0);
set1.setValues(entries);
mChart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(labels));
//set1.setValueFormatter(new LabelFormatter(labels));
//mChart.getXAxis().setValueFormatter(new BarValueFormatter(set1));
mChart.getData().notifyDataChanged();
mChart.notifyDataSetChanged();
} else {
set1 = new BarDataSet(entries, "Engine Types");
ArrayList<Integer> colors = new ArrayList<Integer>();
for (int c : ColorTemplate.VORDIPLOM_COLORS)
colors.add(c);
for (int c : ColorTemplate.JOYFUL_COLORS)
colors.add(c);
for (int c : ColorTemplate.COLORFUL_COLORS)
colors.add(c);
for (int c : ColorTemplate.LIBERTY_COLORS)
colors.add(c);
for (int c : ColorTemplate.PASTEL_COLORS)
colors.add(c);
colors.add(ColorTemplate.getHoloBlue());
set1.setColors(colors);
ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>();
dataSets.add(set1);
mChart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(labels));
//mChart.getXAxis().setValueFormatter(new LabelFormatter(labels));
//mChart.getXAxis().setValueFormatter(new BarValueFormatter(set1));
BarData data = new BarData(dataSets);
data.setValueTextSize(50f);
data.setValueTextColor(Color.WHITE);
data.setValueTypeface(mTfLight);
mChart.setData(data);
}
}
在我的主要活动中,我像这样使用它:
mChart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(labels));
如果要将xAxis标签与每个条形图的中心对齐,请将setCenterAxisLabels属性设置为false
xAxis.setCenterAxisLabels(false);
我正在使用JSONArray来填充我的MPAndroid条形图。但是条与它们的标签不对齐。像这样有人可以帮助我做些什么来将条与它们相应的标签对齐吗?
我正在尝试使用我自己的标签制作Seaborn条形图,代码如下: 但是,我得到一个错误: 有什么好处?
我使用MPAndroidChart条形图...除了x轴,其他都没问题...标签上的条形没有正确对齐。当我缩放图表时,条形图出现在它的标签上,但这种缩放不是我想要的,当我缩放标签时,标签会重复,直到下一个,以此类推。我的数据就像是eg: 年龄是我的标签,它是字符串类型...我需要它是字符串标签。 这是我的c代码# 对于条入口的x位置,我只使用一个称为c的整数,它在每个循环中增加1,所以它给出了0f,
在使用JFreeChart创建具有相对较大数据集的条形图时,我面临以下问题: 用重叠的X轴标签生成的条形图。我尝试了垂直定位标签,仍然没有帮助。请提供解决此问题的最佳方法。代码剪切如下: 更新:根据@trash天的建议,我使用了从0到列计数的Sliding类别数据集索引。当列计数较大(此处为50)时,X标签重叠。当列计数设置为较低的数字时,它工作正常。我想找到大列大小的解决方案。重要的是,我需要将
我试图让x轴标签在柱状图上旋转45度,但没有成功。这是我下面的代码:
我创建了一个水平条形图w/chart.js,需要在y轴上创建两组标签,但只能创建一个。 例如,参见下图,在y轴上,我有一组单词“other”和“paper ”,计数分别为2和3;在这个分组和下面的两个分组中,我还需要显示与这两个词相关的月份——比如五月。 有办法做到这一点吗? 附言:在附加的图像中,我将镜像设置为true,但如果解决方案能给我所需的输出,我愿意关闭镜像。 到目前为止,我已经查看了这