因此,目前,我在ChartJS中有一个条形图,该条形图使用数据库对大小不同的商品(所有商品相同,只是大小不同)之间的不同公司之间进行价格比较。
数据库如下:
id,公司,price_for_small,price_for_medium,price_for_large,国家/地区
1,“ abcd”,20,30,40,“美国”
...等等。
我有3种尺寸,所以到目前为止,条形图有3组:
用户将从下拉列表中选择一个国家,图表将显示该特定国家/地区不同公司之间的价格比较。
我被要求做两件事:添加一个第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]