我在这里指的是存储库背景中的条形图(它们实际上非常微妙):示例:https ://github.com/search?l=ruby&q=stars%3A%3E1&s=forks&type=Repositories
我拥有的是一张表格,我希望表格单元格的背景成为用户进度的条形图。关于我如何完成这件事的任何指示?
我在这里指的是存储库背景中的条形图(它们实际上非常微妙):示例:https ://github.com/search?l=ruby&q=stars%3A%3E1&s=forks&type=Repositories
我拥有的是一张表格,我希望表格单元格的背景成为用户进度的条形图。关于我如何完成这件事的任何指示?
我想建议您使用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]
}]
});
});
这是小提琴。
比我以前的答案晚,但无论如何可能有用;虽然 gRaphaël Charting 可能是一个过时的替代方案,但更新和更好的选择可能是http://chartjs.org - 仍然没有任何 Flash,具有 MIT 许可证和最近更新的 GitHub。
自从我上次回答以来,我自己就一直在使用它,所以现在我有一些网络应用程序,一个和另一个。
如果您要重新开始一个项目,请先尝试使用 Chart.js。
Github 使用 HTML画布元素做到了这一点。
该规范定义了 HTML 画布元素的 2D 上下文。2D 上下文提供对象、方法和属性以在画布绘图表面上绘制和操作图形。
如果您使用浏览器检查器,您会在每个列表元素中看到一个带有画布元素的 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 插件。
希望这些指针可以帮助您实现这一目标。
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
}
}
});
}
您可以使用Shield UI等第 3 方库来绘制图表 - 该库经过测试,可在所有旧版和新版 Web 浏览器和设备上运行良好。
派对肯定迟到了;无论如何,对于那些对 Lan 提到的 HTML5 画布感兴趣的人,您可以使用具有 MIT 许可证(而不是 HighCharts 双许可证)的 gRaphaël Charting 。它也不是特定于 Bootstrap 的,所以它更像是一个一般性的建议。
我不得不承认 HighCharts 的演示看起来非常漂亮,而且我不得不警告 gRaphaël 在精通它之前很难理解。无论如何,您可以轻松地为您的 gRaphaël 图表添加不错的功能(例如,工具提示或缩放效果),因此值得付出努力。