当前位置: 首页 > 知识库问答 >
问题:

Chartjs酒吧图表传奇

商正浩
2023-03-14

我有问题得到一个图例显示在条形图,我已经创建了使用chartjs。留档谈到了一个图例模板,但是我似乎找不到一个如何在图中实现它的好例子。下面是我用来生成图形的代码。

<div style="width: 100%;">
  <canvas id="canvas" height="450" width="600"></canvas>
<div id="legendDiv">&nbsp;</div>
</div>
<script>
    var randomScalingFactor = function(){ return Math.round(Math.random()*100)};

    var barChartData = {
        labels : ["Item 1","Item 2","Item 3","Item 4","Item 5","Item 6","Item 7","Item 8","Item 9","Item 10","Item 11","Item 12","Item 13","Item 14","Item 15","Item 16","Item 17"]
        datasets : [
            {
                fillColor : "rgba(166,166,166,0.5)",
                strokeColor : "rgba(166,166,166,0.8)",
                highlightFill: "rgba(166,166,166,0.75)",
                highlightStroke: "rgba(166,166,166,1)",
                data : [10,4,3,4,3,6,4,1,10,3,3,10,2,4,10,3,4]

             },
            {
                fillColor : "rgba(196,64,54,0.5)",
                strokeColor : "rgba(196,64,54,0.8)",
                highlightFill : "rgba(196,64,54,0.75)",
                highlightStroke : "rgba(196,64,54,1)",
                data : [6,3,2,3,2,3,4,1,8,3,3,6,1,3,8,3,4]
            }
        ]

    }
    window.onload = function(){
        var ctx = document.getElementById("canvas").getContext("2d");
        window.myBar = new Chart(ctx).Bar(barChartData, {
        responsive : true
         });
     }

     </script>
 <div>

共有3个答案

汪庆
2023-03-14

试试这个

    var data = {
        labels: ["January", "February", "March", "April", "May", "June", "July"],
        datasets: [
            {
                label: "My First dataset",
                fillColor: "rgba(151,187,205,0.5)",
                strokeColor: "rgba(151,187,205,0.8)",
                highlightFill: "rgba(151,187,205,0.75)",
                highlightStroke: "rgba(151,187,205,1)",
                data: [28, 48, 40, 19, 86, 27, 90]
            }
        ]
    };
    var context = document.getElementById('clients').getContext('2d');
    var clientsChart = new Chart(context).Bar(data);

HTML:

 <canvas id="clients" width="450" height="350"></canvas>

http://jsfiddle.net/TZq6q/299/

欧桐
2023-03-14

我有一个答案,它工作得很好。。。

var ctx = document.getElementById("canvas").getContext("2d");
                        new Chart(ctx).HorizontalBar(barChartLocData, {
                            responsive: true,
                            scaleFontColor: "#000",
                            showTooltips: false,
                            onAnimationComplete: function() {
                                var ctx = this.chart.ctx;
                                ctx.font = this.scale.font;
                                ctx.fillStyle = this.scale.textColor
                                ctx.textAlign = "right";
                                ctx.textBaseline = "right";
                                this.datasets.forEach(function(dataset) {
                                    dataset.bars.forEach(function(bar) {
                                        ctx.fillText(bar.value, bar.x, bar.y - 5);
                                    });
                                });
                            }
                        });
潘飞英
2023-03-14

下面的答案适用于CHARTJS 1.X

下面是一个例子,说明如何使用需要给每个数据集的标签来设置一个图例,使用默认的图例模板,你所要做的就是在图表上调用GenerateLegend(),然后将其放在页面

var helpers = Chart.helpers;
var canvas = document.getElementById('bar');
var randomScalingFactor = function() {
  return Math.round(Math.random() * 100)
};
var barChartData = {
    labels: ["January", "February", "March", "April", "May", "June", "July"],
    datasets: [{
      label: "My First dataset",
      fillColor: "rgba(220,220,220,0.5)",
      strokeColor: "rgba(220,220,220,0.8)",
      highlightFill: "rgba(220,220,220,0.75)",
      highlightStroke: "rgba(220,220,220,1)",
      data: [randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor()]
    }, {
      label: "My Second dataset",
      fillColor: "rgba(151,187,205,0.5)",
      strokeColor: "rgba(151,187,205,0.8)",
      highlightFill: "rgba(151,187,205,0.75)",
      highlightStroke: "rgba(151,187,205,1)",
      data: [randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor()]
    }]

  }
  // 
var bar = new Chart(canvas.getContext('2d')).Bar(barChartData, {
  tooltipTemplate: "<%if (label){%><%=label%>: <%}%><%= value %>kb",
  animation: false,
});
// 
var legendHolder = document.createElement('div');
legendHolder.innerHTML = bar.generateLegend();

document.getElementById('legend').appendChild(legendHolder.firstChild);
ul {
  list-style: none;
}
ul li {
  display: block;
  padding-left: 30px;
  position: relative;
  margin-bottom: 4px;
  border-radius: 5px;
  padding: 2px 8px 2px 28px;
  font-size: 14px;
  cursor: default;
  height:20px;
  width: 140px;
  -webkit-transition: background-color 200ms ease-in-out;
  -moz-transition: background-color 200ms ease-in-out;
  -o-transition: background-color 200ms ease-in-out;
  transition: background-color 200ms ease-in-out;
}
li span {
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 20px;
  border-radius: 5px;
  height:20px
}

li span.bar-legend-text {
  left:25px;
  width:120px;
}
#chart-area > *{
  float:left
    }
<script src="https://raw.githack.com/chartjs/Chart.js/v1.1.1/Chart.min.js"></script>
<div id="chart-area">
  <canvas id="bar" width="250" height="250" style="width: 250px; height: 250px;"></canvas>
  <div id="legend"></div>
</div>
 类似资料:
  • 条形图用于绘制基于区域的图表。 在本节中,我们将讨论不同类型的条形图表。 Sr.No. 图表类型和描述 1 基本酒吧 基本条形图。 2 堆积吧 条形图有条形堆叠在一起。 3 负堆积区域 条形图与负堆栈。

  • 跟随Redis酒吧/酒吧 这很好用,我可以使用 使用redis cli 当我在另一个类(listener类)中将订户块添加到该通道时,问题就开始了,如下所示 在<代码>redis-cli中 问题是,当我将subscriber listener类添加到同一个rails应用程序时。。。它停止工作,因为侦听redis服务器并停止执行任何其他代码。。。它只是坐在那里听着。 那么,有没有办法在同一个rail

  • 我使用和库。是否有可能以这样的方式更改条形图的颜色方案,即对应于较高计数的条形图具有较深的红色,而对应于较低计数的条形图具有浅红色?所以,某种热图应用于条形图。我怎么做?目前,我的计数图中有随机颜色。 更新: 我试过这个: 但较暗的颜色并不对应较高的计数。看起来颜色是使用预定义的调色板随机分配给条的。

  • 我正在开发一个应用程序,它用setHomeAsUpIndicator方法取代了活动的标题。到目前为止,一切都有意义,因为通过阅读文档可以理解,但我不明白为什么当我按下图标时,会启动某个活动。代码的这一特定部分如下所示: 当按下时,会启动另一个活动,但我不知道指示在哪里。 谢谢你的帮助!

  • 我有一个熊猫数据框,它有两列。 我需要“伯爵”专栏下令的情节。

  • 我正在使用redis pub/sub 编写两个或多个节点进程之间的p2p通信,使用的是lib。 我将发布不同类型的消息,如: 您好:通知其他订阅者新进程已连接 我不知道是否它是更好的为redis订阅许多通道(一个消息类型)或创建一个单一的通道,并发送一个属性,定义消息的类型,如: 提前谢谢