Как реализовать диаграммы в Bootstrap?

Я имею в виду столбчатые диаграммы в фоновом режиме (они на самом деле очень тонкие) репозиториев здесь: Пример: https://github.com/search?l=ruby&q=stars%3A%3E1&s=forks&type=Repositories

То, что у меня есть, - это таблица, и я хочу, чтобы фон ячеек таблицы являлся штрих-диаграммой прогресса пользователя. Любые указатели на то, как я это делаю?

Ответы

Ответ 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>

Script:

$(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.

Ответ 2

Github сделал это, используя элемент HTML canvas.

Эта спецификация определяет 2D-контекст для элемента canvas HTML. 2D-контекст предоставляет объекты, методы и свойства для рисования и манипулировать графикой на поверхности рисования холста.

Если вы используете инспектор браузера, вы увидите внутри каждого элемента списка div с элементом canvas.

<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 или таблицы в вашем случае.

Сделайте search о jQuery pluggins, которые соответствуют вашим требованиям.

Надеемся, что эти указатели помогут вам в этом.

Ответ 3

Позже мой предыдущий ответ, но может быть полезен в любом случае; в то время как gRaphaël Charting может быть устаревшей альтернативой, более новый и более удобный вариант может быть http://chartjs.org - все еще без Flash, с лицензией MIT, и недавно обновленный GitHub.

Я использую его сам со своего последнего ответа, поэтому теперь у меня есть некоторые веб-приложения с одним и с другим.

Если вы начинаете проект заново, сначала попробуйте с Chart.js.

Ответ 4

Определенно поздно для партии; в любом случае, для тех, кого интересует, подбирая Lan упоминание о холсте HTML5, вы можете использовать gRaphaël Charting, который имеет лицензию MIT ( вместо двойной лицензии HighCharts). Это не Bootstrap-specific, так что это больше общего предложения.

Я должен признать, что демонстрации HighCharts кажутся очень красивыми, и я должен предупредить, что gRaphaël довольно трудно понять, прежде чем освоиться с ним. В любом случае вы можете легко добавить приятные функции в свои диаграммы gRaphaël (скажем, всплывающие подсказки или эффекты масштабирования), поэтому это может стоить усилий.