Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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
Javascript 我想更改条形图中单个条形的颜色_Javascript_Jquery_Html_Ajax_Chart.js - Fatal编程技术网

Javascript 我想更改条形图中单个条形的颜色

Javascript 我想更改条形图中单个条形的颜色,javascript,jquery,html,ajax,chart.js,Javascript,Jquery,Html,Ajax,Chart.js,我使用php从mysql获取数据来填充数组,然后使用该结果填充图表数据。我想更改大于50的条的颜色。我尝试了几个已经在堆栈溢出上的示例,但是我无法解决我的问题。这就是我现在提出这个问题的原因 $(文档).ready(函数(){ $.ajax({ url:“http://localhost:8080/chartjs/data.php", 方法:“获取”, 成功:功能(数据){ 控制台日志(数据); var-player=[]; var得分=[]; 用于(数据中的var i){ player.pu

我使用php从mysql获取数据来填充数组,然后使用该结果填充图表数据。我想更改大于50的条的颜色。我尝试了几个已经在堆栈溢出上的示例,但是我无法解决我的问题。这就是我现在提出这个问题的原因

$(文档).ready(函数(){
$.ajax({
url:“http://localhost:8080/chartjs/data.php",
方法:“获取”,
成功:功能(数据){
控制台日志(数据);
var-player=[];
var得分=[];
用于(数据中的var i){
player.push(数据[i].y);
score.push(数据[i].x);
}
var图表数据={
标签:播放器,
数据集:[{
标签:“来自mysql的记录”,
背景颜色:“rgb(92,95,102)”,
边框颜色:“rgba(2002002002000.75)”,
hoverBackgroundColor:'rgba(30,0200)',
hoverBorderColor:'rgba(200200197)',
数据:得分
}
]
};
var ctx=$(“我的画布”);
var条形图=新图表(ctx{
类型:'bar',
颜色:{
数据:功能(分数){
返回值(score.value>=45)?“#00ff00”:“#f90411”;
}
},
数据:图表数据
});
},
错误:函数(数据){
控制台日志(数据);
}
});
});
#图表容器{
宽度:640px;
高度:自动;
}

据我所知,您的问题主要与的使用有关。我对您问题的解决方案如下所示:

//加载数据(显然这是一个硬编码的示例,您可以使用任何后端代码,如PHP):
让数据=[12,19,74,38,45,62];
//您想使用的不合理字段,例如“colors”表示背景色,而“borderColors”表示边框的颜色,您猜对了:
让颜色=[];
让borderColors=[];
//根据值设置字段值(这是您的逻辑):
$.each(数据、函数(索引、值){
//当该值大于45时,将其设置为“给定颜色”,否则将其设置为其他颜色(在示例中,条形图将显示为红色):
如果(值>45){
颜色[索引]=“rgba(0,255,0,0.2)”;
边框颜色[索引]=“rgba(0,255,1)”;
}
否则{
颜色[索引]=“rgba(249,4,17,0.2)”;
边框颜色[索引]=“rgba(249,4,17,1)”;
}
});
//与使用条形图创建图表相关的任何代码(您可以在chart.js的主页上找到有关此代码的任何文档):
设ctx=document.getElementById('myChart');
让myChart=新图表(ctx{
类型:'bar',
数据:{
标签:['1','2','3','4','5','6'],
数据集:[{
标签:“来自mysql的记录”,
//在此处填充您的字段:
数据:数据,
背景颜色:颜色,
borderColor:borderColor,
hoverBackgroundColor:'rgba(30,0200)',
hoverBorderColor:'rgba(200200197)',
边框宽度:1
}]
},
选项:{
比例:{
雅克斯:[{
滴答声:{
贝吉纳泽罗:是的
}
}]
}
}
});
#图表容器{
宽度:640px;
}


myapp.js
这是您的自定义javascript文件吗?#Barrosy是的,我在问题中粘贴了它的代码,所以我想您的问题与PHP无关?如果您对其他语言没有任何疑问(参考PHP),那么可能不值得提及这些语言。如果我正确理解了你的问题,你想知道如何在
chart.js
的图表中添加逻辑,它告诉我:
如果
给定条形图的值
50
,那么
将条形图变成红色?我对
chart.js
必须提供的内容做了一些修改(我认为)无论你想实现什么,都会是结果。我会看看我是否可以应用你的代码。嗨,很抱歉回复太晚,好的,下次我会记住不要提到其他语言,而是我可以使用php通过数据库并使用json填充数组的数据