我指的是这里的存储库背景中的条形图(它们实际上非常微妙): 示例:https://github.com/search?l=ruby&q=stars%3A%3E1&s=forks&type=Repositories
我拥有的是一张桌子,我希望表格单元格的背景是用户进度的条形图。关于我如何完成这件事的任何指示?
答案 0 :(得分:24)
我建议您使用HighCharts。它非常棒且易于集成。
示例:
<强> HTML 强>:
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>
<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>
<强>脚本:强>
$(function () {
$('#container').highcharts({
chart: {
type: 'column'
},
title: {
text: 'Monthly Average Rainfall'
},
subtitle: {
text: 'Source: WorldClimate.com'
},
xAxis: {
categories: [
'Jan',
'Feb',
'Mar',
'Apr',
'May',
'Jun',
'Jul',
'Aug',
'Sep',
'Oct',
'Nov',
'Dec'
]
},
yAxis: {
min: 0,
title: {
text: 'Rainfall (mm)'
}
},
tooltip: {
headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
'<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>',
footerFormat: '</table>',
shared: true,
useHTML: true
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
}
},
series: [{
name: 'Tokyo',
data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}, {
name: 'New York',
data: [83.6, 78.8, 98.5, 93.4, 106.0, 84.5, 105.0, 104.3, 91.2, 83.5, 106.6, 92.3]
}, {
name: 'London',
data: [48.9, 38.8, 39.3, 41.4, 47.0, 48.3, 59.0, 59.6, 52.4, 65.2, 59.3, 51.2]
}, {
name: 'Berlin',
data: [42.4, 33.2, 34.5, 39.7, 52.6, 75.5, 57.4, 60.4, 47.6, 39.1, 46.8, 51.1]
}]
});
});
这是fiddle。
答案 1 :(得分:4)
Github使用HTML canvas元素完成了这项工作。
此规范定义HTML canvas元素的2D上下文。 2D上下文提供了绘制和的对象,方法和属性 在画布绘图表面上操纵图形。
如果使用浏览器检查器,则会在每个列表元素中看到带有 canvas 元素的div。
<div class="participation-graph">
<canvas class="bars" data-color-all="#F5F5F5" data-color-owner="#F5F5F5" data-source="/mxcl/homebrew/graphs/owner_participation" height="80" width="640"></canvas>
</div>
使用CSS(z-index,position ...),您可以将该画布放在li元素或表的背景中,在您的情况下。
关于适合您要求的jquery插件执行search。
希望这些指针可以帮助您实现这一目标。
答案 2 :(得分:3)
比我之前的回答晚,但反正可能有用;虽然gRaphaël图表可能是一个过时的选择,但更新和更好的选项可能是http://chartjs.org - 仍然没有任何Flash,MIT许可证和最近更新的GitHub。
自从我上次回答以来,我一直在使用它,所以现在我有一些网络应用程序与一个和一些与另一个。
如果您要重新开始一个项目,请首先尝试使用Chart.js。
答案 3 :(得分:1)
更新2018年
以下是使用ChartJs的 Bootstrap 4 的简单示例。为图表使用HTML5 Canvas元素......
<div class="container">
<div class="row">
<div class="col-md-6">
<div class="card">
<div class="card-body">
<canvas id="chLine"></canvas>
</div>
</div>
</div>
</div>
</div>
然后用适当的JS来填充图表......
var colors = ['#007bff','#28a745'];
var chLine = document.getElementById("chLine");
var chartData = {
labels: ["S", "M", "T", "W", "T", "F", "S"],
datasets: [{
data: [589, 445, 483, 503, 689, 692, 634],
borderColor: colors[0],
borderWidth: 4,
pointBackgroundColor: colors[0]
},
{
data: [639, 465, 493, 478, 589, 632, 674],
borderColor: colors[1],
borderWidth: 4,
pointBackgroundColor: colors[1]
}]
};
if (chLine) {
new Chart(chLine, {
type: 'line',
data: chartData,
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: false
}
}]
},
legend: {
display: false
}
}
});
}
答案 4 :(得分:0)
聚会一定迟到;无论如何,对于那些感兴趣的人,拿起Lan提到的HTML5画布,你可以使用具有MIT许可证的gRaphaël Charting(而不是HighCharts双重许可证)。它也不是Bootstrap特有的,所以它更像是一般建议。
我不得不承认HighCharts演示看起来非常漂亮,我必须警告gRaphaël在熟练掌握之前很难理解。无论如何,您可以轻松地为gRaphaël图表添加不错的功能(例如,工具提示或缩放效果),因此可能值得付出努力。
答案 5 :(得分:0)
您可以使用Shield UI之类的第三方库进行图表制作-经过测试,并且可以在所有旧版和新版网络浏览器和设备上正常运行。