- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从 1 个系列中绘制一个包含 1440 个点(24 小时)的图表,每个点都有自己的颜色。我能够用钩子(Hook)画它,描述了 here ,但我的边框和阴影越来越难看了。我也无法填充 x 轴和直线之间的空间。Plot 也不会读取这些选项:
var plot = $.plot(
$('.LCGraph'),[
{
data: d2,
points: {
show: true
}
}
],{
grid: {
hoverable: false,
clickable: false,
borderWidth: {
top: 0.1,
right: 0.1,
left: 0.1,
bottom: 0.1
},
borderColor: {
top: "#AAAAAA",
left: "#AAAAAA",
right:"#AAAAAA",
bottom:"#AAAAAA"
},
},
bars: {
show: false
},
xaxis: {
show: true
},
hooks: {
draw: [raw]
}
});
我该如何解决这个问题?
附言使用了这个钩子(Hook):
$(function () {
var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];
var colors = ["#cc4444", "#ff0000", "#0000ff", "#00ff00"];
var radius = [10, 20, 30, 40];
function raw(plot, ctx) {
var data = plot.getData();
var axes = plot.getAxes();
var offset = plot.getPlotOffset();
for (var i = 0; i < data.length; i++) {
var series = data[i];
for (var j = 0; j < series.data.length; j++) {
var color = colors[j];
var d = (series.data[j]);
var x = offset.left + axes.xaxis.p2c(d[0]);
var y = offset.top + axes.yaxis.p2c(d[1]);
var r = radius[j];
ctx.lineWidth = 2;
ctx.beginPath();
ctx.arc(x,y,r,0,Math.PI*2,true);
ctx.closePath();
ctx.fillStyle = color;
ctx.fill();
}
}
};
var plot = $.plot(
$("#placeholder"),
[{ data: d2, points: { show: true } }],
{ hooks: { draw : [raw] } }
);
});
最佳答案
以防万一有人寻找解决方案。
我已经覆盖了手动绘制 X 轴线的钩子(Hook)。
function raw(plot, ctx) {
var data = plot.getData();
var axes = plot.getAxes();
var offset = plot.getPlotOffset();
var bottom = axes.yaxis.p2c(0)+offset.top;
for (var i = 0; i < data.length; i++) {
var series = data[i];
for (var j = 0; j < series.data.length; j++) {
var color = colors[j];
var d = (series.data[j]);
var x = offset.left + axes.xaxis.p2c(d[0]);
var y = offset.top + axes.yaxis.p2c(d[1]);
var r = 0.9;
ctx.lineWidth = 0.4;
ctx.strokeStyle = color;
ctx.beginPath();
ctx.arc(x,y-r,r,0,Math.PI*2,true);
ctx.closePath();
ctx.fillStyle = color;
ctx.fill();
ctx.shadowSize = 0;
ctx.beginPath();
ctx.moveTo(x,y);
ctx.lineTo(x, bottom);
ctx.stroke();
ctx.closePath();
ctx.fill();
}
}
}
也许可以对其进行优化,但它可以正常工作。为了防止 flot 出现这种丑陋的颜色,我更改了 plot 的选项以隐藏实际图形:
var plot = $.plot(
$('#graphContainer'),[
{
data: d2,
points: {
show: true
}
}
],{series:{
shadowSize: 0,
color: "rgba(0,0,0,0)",
lines: {
lineWidth: 0.1,
fill: false,
show: false,
color: "rgba(0,0,0,0)"
},
points: {
shadowSize: 0,
lineWidth: 0.1,
fill: false,
show: false,
color: "rgba(0,0,0,0)"
}
},
grid: {
backgroundColor: "#F1F1F1",
hoverable: false,
clickable: false,
borderWidth: {top: 0.1, right: 0.1, left: 0.1, bottom: 0.1},
borderColor: {
top: "#AAAAAA",
left: "#AAAAAA",
right:"#AAAAAA",
bottom:"#AAAAAA"
},
},
bars: {
show: false
},
xaxis: {
show: true,
},
hooks: {
draw: [raw]
}
});
因此,您需要包含数据的 d2 数组和包含每个点颜色的颜色数组。 d2 的长度和颜色应该相同。您还可以在 function raw(plot, ctx)
中更改 var r
和 ctx.lineWidth
的值以获得您想要的外观。
关于javascript - Flotcharts : draw point with different colors, 相同的数据系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23634523/
我使用 fllotcharts JS 折线图来显示不同股票交易头寸的值(value)。用户可以通过图表上方的复选框显示/隐藏图表上的每笔交易。默认情况下,折线图按照系列创建的顺序使用默认或我预定义的颜
我想使用结合折线图和条形图的 flotchart 创建图表。我已经能够分别创建两者,但我在加入它们时遇到了问题。 这是我用来仅显示图表的代码: var dataset = [{ label:
我有两个数据系列的 Flot 折线图。我想为每个系列独立编辑工具提示。我曾尝试将工具提示设置移动到数据集部分,但没有成功。 有人知道解决办法吗? $(function () { var barOpti
使用流程图,我需要将背景分成两种颜色。它不会在中间,它会有轻微的偏移。 据我所知,我在互联网上找不到任何提供此信息的文档。如果有人能指出我正确的方向,那就太好了。如果可能的话,有人可以输入代码来说明如
我正在使用 Flotcharts 创建堆积条形图来显示值的分割。我已经完成了这项工作,因此一旦我将鼠标悬停在堆栈上,它将显示一个工具提示,其中包含该堆栈的值(您可以在第二列中看到这一点)。 我需要的是
在我的图表中,数据集中的所有项目都不包含小数点,但在其自动缩放例程中,它有时决定向我显示中间小数点 我不希望它那样做,有没有办法让它不那样做? 这很重要的原因是因为这个数据集中从来没有十进制值,所以没
是否可以在 jQuery Flotchart 上突出显示特定行(不是点,而是整个系列)?如果没有直接的可能性,也许有人有自己的片段? 将不胜感激。 编辑1:在“突出显示”下,我的意思是至少 - 改变线
如何禁用给定系列的工具提示?我有 2 个数据系列。我只想要一个工具提示。 我的工具提示选项: tooltip: true, tooltipOpts: { id:
我正在使用 http://www.flotcharts.org/ .为什么我的网格线消失了? 这是我的绘图选项的代码: var options = { grid: {
我在格式化以下流程图时遇到问题: 我希望我的第二个系列(灰色)是直的,就像正方形一样。应该是从682开始,到683结束,怎么解决呢? 我的船队的选项: var options = {
如何给yaxis标签添加单值?就像这个 80 值: 最佳答案 1) 对于线路使用 markings ,例如将此添加到您的图表选项: grid: { markings: [ { xaxis: {
我正在尝试从 1 个系列中绘制一个包含 1440 个点(24 小时)的图表,每个点都有自己的颜色。我能够用钩子(Hook)画它,描述了 here ,但我的边框和阴影越来越难看了。我也无法填充 x 轴和
我只是跟着导师(以及“StackOverfklow”的帖子)创建2行系列in this real-time graphics example ,但是这两行似乎使用完全相同的数据... 我就是不知道我做
我正在使用 fllotchart 制作自定义折线图(在 ajax 中调用),但我可能做错了什么,因为他不会显示,并且我收到错误: Uncaught Error: Time mode requires
我是一名优秀的程序员,十分优秀!