如何在ChartJS的分组条形图中包括额外的条形?

时间:2018-12-24 14:32:28

标签: javascript charts dataset chart.js

因此,目前,我在ChartJS中有一个条形图,该条形图使用数据库对大小不同的商品(所有商品相同,只是大小不同)之间的不同公司之间进行价格比较。

数据库如下:

id,公司,price_for_small,price_for_medium,price_for_large,国家/地区

1,“ abcd”,20,30,40,“美国”

...等等。

我有3种尺寸,所以到目前为止,条形图有3组:

Link to image: https://imgur.com/EDb0Fnh

用户将从下拉列表中选择一个国家,图表将显示该特定国家/地区不同公司之间的价格比较。

我被要求做两件事:添加一个第4尺寸,我这样做了。然后将新类型的项目添加到前3个尺寸中。因此,例如,我有项目A和项目B,而不是3种尺寸的项目,它们都以小,中和大三种形式出现,而A也以超大尺寸出现。我已经成功地将它们添加到数据库中,并且定价正确。我只需要将它们添加到图表中即可。

由于太多图表看起来比较混乱,我想做的是: 当用户用国家,项目,尺寸等填充表单时。我希望图形仅显示用户选择的项目的图表。因此,如果他们选择项目A,则图表将以该特定国家/地区的4种尺寸显示项目A。如果他们选择B,则会显示B的3种尺寸。

首先,我尝试仅将新项目添加为已存在的图表中的条形,但由于数据集分组而无法使用。现在,我试图找到一种方法来显示不同的图形,具体取决于所选的项目。这有可能吗?抱歉,JavaScript的新功能。

HTML:

<canvas width="600" height="480"id="myChart"></canvas>

JS:

plotGraph();
       var myChart = new Chart(ctx, {
           type: 'bar',
           data: price_data,
           options: chartOptions
   }); 

var ctx = document.getElementById("myChart").getContext('2d');
var company1_data, company2_data, company3_data, price_data, chartOptions;
//Function to plot the bar chart
function plotGraph(){
    company1_data = {
    label : 'Company 1',
    data: [req_comp1.small, req_comp1.medium, req_comp1_large, 
           req_comp1.extra_large],
    borderWidth: 0,
    yAxisID: "y-axis-prices"
};

----与其他两家公司相同-----

price_data ={
      labels: ["Small", "Medium", "Large", "Extra Large"],
      datasets: [company1_data, company2_data, company3_data]

0 个答案:

没有答案