如何在 Bootstrap 中实现图表?
Posted
技术标签:
【中文标题】如何在 Bootstrap 中实现图表?【英文标题】:How do I implement charts in Bootstrap? 【发布时间】:2013-09-10 04:40:42 【问题描述】:我指的是这里存储库背景中的条形图(它们实际上非常微妙): 示例:https://github.com/search?l=ruby&q=stars%3A%3E1&s=forks&type=Repositories
我有一个表格,我希望表格单元格的背景是用户进度的条形图。关于我如何完成这件事的任何指示?
【问题讨论】:
如果您使用 php,您可以使用 jpGraph 或任何其他图表库渲染图表并将图像用作background-image
。这是我能想到的最合适的解决方案。
哦,我将为此使用 Ruby on Rails
我建议你为 Ruby on Rails 添加标签。顺便说一句:***.com/questions/3397414/charts-library-for-ruby
【参考方案1】:
我建议您使用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。
【讨论】:
今天才知道这个,太棒了! highcharts 也可以做地图,比如 Leaflet,马上试试。 @Rony,Highchart 是免费的还是付费的..? @bgs 恐怕它不能免费用于商业用途。您可以免费将其用于非商业用途highcharts.com/products/highcharts【参考方案2】:晚于我之前的答案,但无论如何可能有用;虽然 gRaphaël Charting 可能是一个过时的替代方案,但更新更好的选择可能是 http://chartjs.org - 仍然没有任何 Flash,具有 MIT 许可证和最近更新的 GitHub。
自从我上次回答以来,我自己一直在使用它,所以现在我有一些网络应用程序,其中一个和另一个。
如果您要重新开始一个项目,请先尝试使用 Chart.js。
【讨论】:
【参考方案3】:Github 使用 HTML canvas 元素做到了这一点。
本规范定义了 HTML 画布元素的 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" ></canvas>
</div>
使用 CSS (z-index, position...),您可以将画布放在 li 元素或表格的背景中。
请search 了解符合您要求的 jquery 插件。
希望这些指针可以帮助您实现这一目标。
【讨论】:
【参考方案4】:2018 年更新
这是一个使用 Bootstrap 4 和 ChartJs 的简单示例。为图表使用 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
);
Bootstrap 4 Charts Demo
【讨论】:
【参考方案5】:聚会肯定迟到了;无论如何,对于那些对 Lan 提到的 HTML5 画布感兴趣的人,您可以使用具有 MIT 许可证(而不是 HighCharts 双许可证)的gRaphaël Charting。它也不是特定于 Bootstrap 的,所以它更像是一个一般性的建议。
我不得不承认 HighCharts 的演示看起来非常漂亮,而且我不得不警告 gRaphaël 在精通之前很难理解它。无论如何,您都可以轻松地为您的 gRaphaël 图表添加一些不错的功能(例如,工具提示或缩放效果),因此值得付出努力。
【讨论】:
关于这个的 Github 已经 4 年没有更新了。我认为可以肯定地说这不是当前 Web 开发的可行选择。 你是绝对正确的。我自己一直在寻找另一个图书馆,自二月以来我一直在使用chartjs.org。仍然是 MIT 许可证,但更好更容易使用。仍然没有任何 Flash 要求。我不会更新这个答案,但会提供另一个答案。【参考方案6】:您可以使用像 Shield UI 这样的第 3 方库来绘制图表 - 该库经过测试,可在所有旧版和新版网络浏览器和设备上正常运行。
【讨论】:
以上是关于如何在 Bootstrap 中实现图表?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 rem 中实现响应式字体大小 - bootstrap
如何在 Bootstrap v4.1 中实现多级下拉菜单? [复制]