如何使图例出现在饼图 (Chart.JS) 的右侧?

2024-02-18

我正在使用 Chart.JS 创建一个相当简单的饼图,如下所示:

var data = {
    labels: [
        "Bananas (18%)",
        "Lettuce, Romaine (14%)",
        "Melons, Watermelon (10%)",
        "Pineapple (10%)",
        "Berries (10%)",
        "Lettuce, Spring Mix (9%)",
        "Broccoli (8%)",
        "Melons, Honeydew (7%)",
        "Grapes (7%)",
        "Melons, Cantaloupe (7%)"
    ],
    datasets: [
        {
            data: [2755, 2256, 1637, 1608, 1603, 1433, 1207, 1076, 1056, 1048],
            backgroundColor: [
                "#FFE135",
                "#3B5323",
                "#fc6c85",
                "#ffec89",
                "#021c3d",
                "#3B5323",
                "#046b00",
                "#cef45a",
                "#421C52",
                "#FEA620"
            ]
        }
    ]
};

var optionsPie = {
    responsive: true,
    scaleBeginAtZero: true,
    tooltips: {
        callbacks: {
            label: function (tooltipItem, data) {
                return data.labels[tooltipItem.index] + ": " +
                    formatter.format(data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index]);
            }
        }
    }
};

var ctx = $("#top10ItemsChart").get(0).getContext("2d");
var top10PieChart = new Chart(ctx,
{
    type: 'pie',
    data: data,
    options: optionsPie
});

$("#top10Legend").html(top10PieChart.generateLegend());

看起来不错:

...但我想要左侧的饼图和右侧的图例,并且图例垂直堆叠。我怎样才能实现这个目标?

UPDATE

我试过这个:

CSS

.pieLegend li span {
    display: inline-block;
    width: 12px;
    height: 12px;
    margin-right: 5px;
}

HTML

<div id="pie_legend" class="pieLegend"></div>

...正如已接受的答案中所建议的那样here https://stackoverflow.com/questions/37334399/custom-legend-in-chart-js-2-1-3,但这没有任何区别。

UPDATE 2

修复错误的 ID 会导致显示新的图例,并且在选项中添加“display: false”会导致原来的图例消失,但新的图例仍然出现在饼图下方,挤在其 div 之外并渗入下面的象限它(显示悬停在香蕉上):

UPDATE 3

以下是应用已接受答案的代码后的外观:

馅饼仍然很小,但这比以前好多了(并回答了问题)。


您必须首先在选项中关闭默认图例:

legend: {
        display: false
},

还有你的id您的图例选择器是错误的。Fiddle http://www.bootply.com/KjsxnFMM5G.

将图表包裹在<div>并设置其高度和宽度,因为画布将响应其容器,然后设置画布的div和传说中的div as display:inline-block.

HTML

<div id="kpi">
    <div id="container">
      <canvas id="top10ItemsChart"></canvas>
    </div>
    <div id="top10Legend" class="pieLegend"></div>
</div>

CSS

 #kpi{
      height: 400px;
      width: 100%;
      border: 1px solid black;
      background-color: white;
    }
    .pieLegend li span {
      display: inline-block;
      width: 12px;
      height: 12px;
      margin-right: 5px;
    }

    #top10Legend {
      display: inline-block;
    }

    #container {
      display: inline-block;
      height: 50%;
      width: 50%;
    }

    #top10Legend>ul{
      list-style:none;
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使图例出现在饼图 (Chart.JS) 的右侧? 的相关文章

  • 如何在chart.js中应用渐变颜色?

    我正在使用 Chart js 库制作折线图 在这里我想将线条的颜色更改为渐变颜色 我试过的代码 const gradientFill ctx createLinearGradient 500 0 100 0 gradientFill add
  • Chart JS:忽略 x 值并将点数据放在第一个可用标签上

    我正在 Chart js 中制作折线图 并且遇到一个问题 我试图在线上绘制点数据 但它忽略了我给出的 x 值 而是将它们放在第一个可用标签上 this myLineChart new Chart this ctx type line dat
  • Chartjs 在鼠标悬停时非常快速地调整大小(闪烁)

    我在基于引导的页面中有一个图表 我试图在页面调整大小时调整它的大小 以遵循响应式设计的变化 所以我有这段代码 function redrawChart var w chart container width var c document g
  • 错误:“类别”不是注册规模

    我正在尝试从以下位置迁移 Chart js2 9 3 to 3 3 0即使在应用更改之后 https www chartjs org docs latest getting started v3 migration html https w
  • Chart.js 响应式条形图标签大小调整

    所以我有一个使用 Chart js 的条形图 并且启用了响应式功能 它似乎适用于某些图表 但不适用于其他图表 例如 我的条形图标签似乎没有随窗口调整大小 但其他所有内容都会使整个图表在较小的窗口尺寸下看起来非常奇怪 如何重新调整标签大小以使
  • 使用按钮在 Chart.js 中切换图表

    我是一名初学者开发人员 我一直在尝试使用 ChartJS 将一些数据显示到屏幕上 我希望能够单击一个按钮来生成另一组新的数据 轴 我一直在尝试遵循其他堆栈溢出答案 但似乎没有一个对我有用 请参见下文
  • Chart.js 中未显示折线图

    问题很严重 我看不到图表的线条 当我按下任何按钮时 X 轴的时间应该根据按下的按钮而相应地变化我已经浏览文档很长一段时间了 但仍然无法弄清楚 图表数据 import React useRef useEffect useState from
  • D3.js:饼图,仅向外部区域添加边框

    我在 D3 中得到了一个饼图 并用笔画分隔了每个切片 但是 我想仅向切片的外部区域添加边框 而不是在连续线上添加边框 而是尊重原始切片中的笔划创建的间隙 请参阅我的图片以进行澄清 关于如何做到这一点有什么想法吗 See http jsfid
  • 删除标签并仅在条形图的工具提示中显示值

    我在用ChartJS http www chartjs org docs 用于创建图表的库 在工具提示中 我显示了我创建的数据集中的数据值 它适用于图表类型为doughnut 否则它不起作用 以防万一或bar or 水平条 charts 无
  • Chart.js 将标签变成链接

    我不确定如果不做以下事情是否可能 在 HTML 画布中创建链接 https stackoverflow com questions 6215841 create links in html canvas但让我们确定一下 有没有一种方法 相对
  • 如何在React ChartJS中获取填充圆图?

    我想介绍一个填充圆图 气泡图的变体 仅包含半径作为其尺寸 React Chartjs乃至Chartjs仅支持气泡图 不支持圆形图 这是我想要添加的预期图表的示例 我可以使用这样的东西吗react chartjs 例如 需要执行如下操作来定期
  • 如何在多行字符中只显示一个标签?

    我使用 Chart js 创建一个图表 该图有两条线 因此它默认也显示两个标签 但我需要一种配置 其中应该显示红色标签 而应该隐藏蓝色标签 标签not线 感谢您的帮助 var config type line data labels 16
  • 在 React 中的图表 js-2 的圆环图中添加文本

    i want to add a text message inside my doughnut pie chart To be more specific i want something like this 我在堆栈溢出中遇到了同样的问题
  • 如何更改 Angular-Chart.js 的颜色

    我使用 Angular Chart js AngularJSChart js http www chartjs org 版本 来创建条形图 图表正在使用除颜色之外的选项 即使我设置了它们 它也会显示在文档中 http jtblin gith
  • Chart.js 中具有线性时间刻度的折线图

    我正在尝试使用Chart js 3 3 2 https www chartjs org docs latest 显示一些具有等距 x 日期轴的折线图 就像他们给出的例子一样here https www chartjs org docs la
  • Chartjs 插件数据标签不在图表上显示值

    我正在尝试使用 Chartjs 数据标签插件获取每个条形上的值 因此 在 a 条上方 a 想要看到数字 30 在 b 条上方或内部我想看到数字 50 但它根本没有显示任何价值 谁能帮忙并告诉我出了什么问题吗 我也尝试过使用不同版本的char
  • 如何在 Chart.js 中将 Y 轴值从数字更改为字符串?

    我在用Chart js http www chartjs org 我正在尝试更改 y 轴 请参见下面的屏幕截图 我尝试填写yLabels具有字符串数组的属性 但这没有用 任何帮助 将不胜感激 jQuery document ready fu
  • 添加 X 轴标题会导致 Uncaught RangeError:minimumFractionDigits value is out of range in Chart.js

    我正在尝试向 Chart js 图表的 X 轴添加标题 但是当我将标题属性放在 x 轴上时 出现错误 Uncaught RangeError minimumFractionDigits value is out of range 但它并没有
  • Chart.JS 工具提示回调标签和标题 (v3.5)

    请注意 v2 有很多答案 这是 v3 的 我正在尝试设置工具提示label and title对于圆环图 Code Create the donut chart donut new Chart questions positivity do
  • 使用chartJS显示带有连接点的折线图

    我想使用 ChartJS 绘制这样的图表 但我找不到连接第一个和最后一个点并在该连接区域内显示单个唯一点的解决方案 我还需要用不同的颜色设置每个点的样式 我尝试探索 ChartJS 文档但找不到解决方案 是否有任何图表绘制库具有这些功能或如

随机推荐

  • 如何查明使用哪个密钥库来签署应用程序?

    我有一个已签名的应用程序和几个密钥库文件 我想更新应用程序 因此我需要找出使用了哪一个按键 如何将最初用于签署我的应用程序的密钥库与我计算机上的各种密钥库进行匹配 首先 解压APK并提取文件 META INF ANDROID RSA 该文件
  • 使用 Numpy 或 TensorFlow 实现多个 2D 矩阵的高效轴方向笛卡尔积

    因此 首先 我认为我想要实现的是某种笛卡尔积 但仅在各列之间按元素进行 我想做的是 如果您有多个大小为 N D1 N D2 N D3 N Dn 的二维数组 因此 结果是跨 axis 1 的组合乘积 最终结果的形状为 N D 其中 D D1
  • BufferedReader 不读取过去的空行[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我试图找出
  • djangorest框架迭代模型序列化器中的字段

    我想迭代 ModelSerializer 中的字段并希望将这些字段设置为必填字段 这不起作用 我怎样才能做到这一点 有人请帮助我 class CustomerSerializer serializers ModelSerializer cl
  • Github Actions 徽章不显示状态

    我在我的存储库上运行了很多次 github 操作 没有出现任何问题 并且在我的存储库之一上使用相同的脚本 它显示 无状态 回购协议是 https github com aurelpere python planif https github
  • 如何使用 JDBC 从数据库检索 SDO_GEOMETRY?

    我是 Java 新手 我需要从数据库检索 SDO GEOMETRY 并使用 jdbc 将其转换为字符串 如果有人有示例或想法 请与我分享 如有帮助 将不胜感激 此致 Sanjay 看看几何学 http download oracle com
  • django.db.utils.OperationalError:(2005,“未知的 MySQL 服务器主机 'db' (-2)”)

    我正在尝试在 docker 容器中运行 django 和 mysql version 2 services db image mysql latest volumes db var lib mysql ports 3306 3306 env
  • 检查编译单元的 DWARF 版本

    全部 有没有工具可以检查文件的 DWARF 版本 像这样的东西 dwarf tool binary name 4 在Linux环境下 如果你安装了 GCC 你应该有readelf可执行的 所以你可以尝试这个 readelf debug du
  • UITableViewRowAnimationFade 不起作用

    所以 这个问题是从上一期 https stackoverflow com questions 11330153 但我决定发布一个新问题以保持相关性和整洁 基本上 当调用下面这段代码时 两者没有区别UITableViewRowAnimatio
  • 系统错误:父模块“未加载”,无法执行相对导入[重复]

    这个问题在这里已经有答案了 我有以下目录 myProgram app init py main py mymodule py mymodule py class myclass object def init self pass def m
  • 如何将mongodb与casbah的连接池化?

    我正在使用 mongodb 和 scala 驱动程序casbah 如果我没理解错的话 它不提供连接池 有没有 casbah 的池库 比如dbcp c3p0用于 jdbc 连接 Casbah 包装了 MongoDB Java 驱动程序 它提供
  • 正确地将参数传递给 Go Exec

    我正在尝试学习 Go 作为开始 我想尝试构建一个超级简单的 Web 服务器来控制我的 iTunes 我用过osascript e Tell Application iTunes to playpause 过去曾多次出于此目的 我想我可以简单
  • 本地数据库 API - 已弃用 有什么替代方案? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 稀疏矩阵作为 R 中层次聚类的输入

    我有一个关于使用距离矩阵进行聚类的问题 但稀疏 是否存在不扩展矩阵并且可以使用稀疏表示的稀疏距离对象格式 目前我正在做以下事情 read sparse matrix sparse lt readMM sparse matrix distan
  • C#:将int[]转换为字符串的最有效方法

    我确实知道此类问题已经被回答过很多次了 尽管我找到了很多可能的答案 但它们仍然没有解决我的问题 即实现将整数数组转换为单个字符串的最快方法 我有例如 int Result new int 1753387599 1353678530 9870
  • 序言中的有效括号列表

    我正在尝试测试括号列表是否有效 我的代码 checkbrackets checkbrackets T T List checkbrackets List checkbrackets T T List append Rest T checkb
  • 使用 Simba 驱动程序将 ODBC 连接到 AzureDatabricks

    我只是想为 Databricks Cluster 设置 ODBC 驱动程序 根据MS文档 https learn microsoft com en us azure databricks kb bi jdbc odbc troublesho
  • 如何将温斯顿日志文件限制为特定数量

    我正在考虑使用 Winston 的日志轮换功能 有没有办法限制日志文件的数量 例如 如果我每天轮换文件 有没有办法指定我只想保留最近三天的日志 来自评论 Aleksandr M maxFiles是那个财产 它可以这样读 dailyRotat
  • Java 8 中 Collections.sort 的问题

    Entity NamedQueries NamedQuery name FolderNode findByName query SELECT f FROM FolderNode f WHERE f name name AND f paren
  • 如何使图例出现在饼图 (Chart.JS) 的右侧?

    我正在使用 Chart JS 创建一个相当简单的饼图 如下所示 var data labels Bananas 18 Lettuce Romaine 14 Melons Watermelon 10 Pineapple 10 Berries