Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android highcharts显示单输入条形图_Android_Highcharts_Bar Chart_Android Highcharts - Fatal编程技术网

Android highcharts显示单输入条形图

Android highcharts显示单输入条形图,android,highcharts,bar-chart,android-highcharts,Android,Highcharts,Bar Chart,Android Highcharts,我正在安卓系统中制作高图。我正试图用一个条目来显示。下面是代码 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); HIChartView

我正在安卓系统中制作高图。我正试图用一个条目来显示。下面是代码

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    HIChartView chartView = findViewById(R.id.hc);

    HIOptions options = new HIOptions();

    HIChart chart = new HIChart();
    chart.setType("bar");
    options.setChart(chart);

    HITitle title = new HITitle();
    title.setText("Historic World Population by Region");
    options.setTitle(title);

    HISubtitle subtitle = new HISubtitle();
    subtitle.setText("Source: <a href=\\\"https://en.wikipedia.org/wiki/World_population\\\">Wikipedia.org</a>Source: <a href=\\\"https://en.wikipedia.org/wiki/World_population\\\">Wikipedia.org</a>");
    options.setSubtitle(subtitle);

    HIXAxis xaxis = new HIXAxis();
    String[] categories = new String[] { "Africa", "America", "Asia", "Europe", "Oceania"};
    xaxis.setCategories(new ArrayList<>(Arrays.asList(categories)));
    options.setXAxis(new ArrayList<HIXAxis>(){{add(xaxis);}});

    HIYAxis yaxis = new HIYAxis();
    yaxis.setMin(0);
    yaxis.setTitle(new HITitle());
    yaxis.getTitle().setText("Population (millions)");
    yaxis.getTitle().setAlign("high");
    yaxis.setLabels(new HILabels());
    yaxis.getLabels().setOverflow("justify");
    options.setYAxis(new ArrayList<HIYAxis>(){{add(yaxis);}});

    HITooltip tooltip = new HITooltip();
    tooltip.setValueSuffix(" millions");
    options.setTooltip(tooltip);

    HILegend legend = new HILegend();
    legend.setLayout("vertical");
    legend.setAlign("right");
    legend.setVerticalAlign("top");
    legend.setX(-40);
    legend.setY(80);
    legend.setFloating(true);
    legend.setBorderWidth(1);
    legend.setBackgroundColor(HIColor.initWithHexValue("FFFFFF"));
    legend.setShadow(true);
    options.setLegend(legend);

    HICredits credits = new HICredits();
    credits.setEnabled(false);
    options.setCredits(credits);

    HIBar bar1 = new HIBar();
    bar1.setName("Year 1800");
    Number[] bar1Data = new Number[] {107, 31, 635, 203, 2 };
    bar1.setData(new ArrayList<>(Arrays.asList(bar1Data)));

    HIBar bar2 = new HIBar();
    bar2.setName("Year 1900");
    Number[] bar2Data = new Number[] { 133, 156, 947, 408, 6 };
    bar2.setData(new ArrayList<>(Arrays.asList(bar2Data)));

    HIBar bar3 = new HIBar();
    bar3.setName("Year 2012");
    Number[] bar3Data = new Number[] { 1052, 954, 4250, 740, 38 };
    bar3.setData(new ArrayList<>(Arrays.asList(bar3Data)));

    options.setSeries(new ArrayList<>(Arrays.asList(bar1, bar2,bar3)));

    chartView.setOptions(options);
}
}
public类MainActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
HIChartView chartView=findViewById(R.id.hc);
HIOptions options=新的HIOptions();
HIChart图表=新的HIChart();
图表.设置类型(“条形”);
选项。设置图表(图表);
HITitle title=新的HITitle();
标题.setText(“按区域分列的历史世界人口”);
选项。设置标题(标题);
HISubtitle subtitle=新的HISubtitle();
副标题.setText(“来源:来源:”);
选项。设置子标题(副标题);
HIXAxis xaxis=新的HIXAxis();
字符串[]类别=新字符串[]{“非洲”、“美洲”、“亚洲”、“欧洲”、“大洋洲”};
setCategories(新的ArrayList(Arrays.asList(categories));
setXAxis(新的ArrayList(){{add(xaxis);}});
HIYAxis yaxis=新的HIYAxis();
yaxis.setMin(0);
setTitle(新的HITitle());
yaxis.getTitle().setText(“人口(百万)”;
yaxis.getTitle().setAlign(“高”);
setLabels(新的HILabels());
yaxis.getLabels().setOverflow(“justify”);
options.setYAxis(newarraylist(){{add(yaxis);}});
HITooltip工具提示=新建HITooltip();
工具提示:setValueSuffix(“百万”);
选项。设置工具提示(工具提示);
HILegend图例=新的HILegend();
图例。设置布局(“垂直”);
图例。setAlign(“右”);
图例:setVerticalAlign(“顶部”);
图例.setX(-40);
塞蒂(80岁);
图例.setFloating(真);
图例.宽度(1);
legend.setBackgroundColor(HIColor.initWithHexValue(“FFFFFF”));
图例。设置阴影(正确);
选项。设置图例(图例);
HICredits credits=新HICredits();
credits.setEnabled(false);
选项。设置学分(学分);
HIBar bar1=新的HIBar();
bar1.设定名称(“1800年”);
编号[]bar1Data=新编号[]{107,31635203,2};
bar1.setData(新的ArrayList(Arrays.asList(bar1Data));
HIBar bar2=新的HIBar();
bar2.设定名称(“1900年”);
Number[]bar2Data=新编号[]{133、156、947、408、6};
setData(新的ArrayList(Arrays.asList(bar2Data));
HIBar bar3=新的HIBar();
bar3.设定名称(“2012年”);
编号[]bar3Data=新编号[]{1052954425074038};
setData(新的ArrayList(Arrays.asList(bar3Data));
options.setSeries(新的ArrayList(Arrays.asList(bar1、bar2、bar3));
图表视图。设置选项(选项);
}
}
输出

预期产出

我希望每个月有一个条目,如下所示

我尝试过的

我已经尝试了下面的代码

    HIXAxis xaxis = new HIXAxis();
    String[] categories = new String[] { "Mar-2021", "Apr-2021","May-2021"};
    xaxis.setCategories(new ArrayList<>(Arrays.asList(categories)));
    options.setXAxis(new ArrayList<HIXAxis>(){{add(xaxis);}});

    HIBar bar1 = new HIBar();
    bar1.setName("March");
    Number[] bar1Data = new Number[]{10};
    bar1.setData(new ArrayList<>(Arrays.asList(bar1Data)));

    HIBar bar2 = new HIBar();
    bar2.setName("April");
    Number[] bar2Data = new Number[] {15};
    bar2.setData(new ArrayList<>(Arrays.asList(bar2Data)));

    HIBar bar3 = new HIBar();
    bar3.setName("May");
    Number[] bar3Data = new Number[] {20};
    bar3.setData(new ArrayList<>(Arrays.asList(bar3Data)));
HIXAxis-xaxis=new-HIXAxis();
字符串[]类别=新字符串[]{“Mar-2021”、“Apr-2021”、“May-2021”};
setCategories(新的ArrayList(Arrays.asList(categories));
setXAxis(新的ArrayList(){{add(xaxis);}});
HIBar bar1=新的HIBar();
bar1.设定名称(“三月”);
编号[]bar1Data=新编号[]{10};
bar1.setData(新的ArrayList(Arrays.asList(bar1Data));
HIBar bar2=新的HIBar();
bar2.设定名称(“四月”);
编号[]bar2Data=新编号[]{15};
setData(新的ArrayList(Arrays.asList(bar2Data));
HIBar bar3=新的HIBar();
bar3.设置名称(“可能”);
编号[]bar3Data=新编号[]{20};
setData(新的ArrayList(Arrays.asList(bar3Data));
输出

输出不是我所期望的,因为它显示了单个月的所有3个值

更新1


我已经找到了一个网络解决方案,但不幸的是,我无法在我的android代码中实现同样的效果。这是您需要增加的数据量,而不是序列量。因此,与多个系列不同:

HIBar bar1 = new HIBar();
Number[] bar1Data = new Number[]{10};
...

HIBar bar2 = new HIBar();
Number[] bar2Data = new Number[] {15};
...

HIBar bar3 = new HIBar();
Number[] bar3Data = new Number[] {20};
...
使用具有多个点的一个系列:

HIBar bar1 = new HIBar();
Number[] bar1Data = new Number[] {107, 31, 635, 203, 2 };
bar1.setData(new ArrayList<>(Arrays.asList(bar1Data)));
HIBar bar1=新的HIBar();
编号[]bar1Data=新编号[]{107,31635203,2};
bar1.setData(新的ArrayList(Arrays.asList(bar1Data));

如何将每个点设置为不同的颜色?您好@Moeez,您需要启用
colorByPoint
属性。示例:
bar1.setColorByPoint(true)它像一个符咒一样工作。我又加了一个。你能看一下吗?