Rails 收集 JSON 数据并将其渲染到 Highcharts 图表中

2024-01-24

我正在尝试将标签传递到 x 轴上的 Highcharts 柱形图。

目前,图表的工作方式是渲染数据,但 x 轴标签显示 0、1、2、3...等,这是没有任何可渲染内容时的默认值。

注释_控制器:

def dashboard
  @data = Note.getData()
end

note.rb

def self.getData
    data = []
    self.subject_types.each do |type|
      data << self.type_count(type)
    end
    data
  end

private

  def self.subject_types
    pluck(:subject_type).uniq
  end

  def self.type_count(type)
    where(subject_type: type).count
  end
end

仪表板.html.erb javascript

...series: [{
           name: 'Number of Notes By Class Module',
           data: <%= @data %>
          }]...

上面的作品很棒,但是我如何让标签显示出来呢?它们应该来自我的表中名为 subject_type 的列。我已经尝试过以下方法:

note.rb:

def self.getSubjects
    respond_to do |format|
    render :json => @note.to_json(:only => [:subject_type])
end

(我可能这样做完全错误!)

注释_控制器.rb:

def subject
    @subject = Note.getSubjects()
end

仪表板.html.erb:

...series: [{
               name: 'Number of Notes By Class Module',
               data: <%= @data %>, <%= @subject %>
              }]...

谢谢。任何帮助我都会非常感激。


为什么你想打印subject_type in x-axis ? The axes图表通常用于测量。轴可以是线性轴、对数轴、日期时间轴或类别轴。

根据我的理解,你想展示每个subject_type as a series name.

If No尝试这个

xAxis: {
    categories: '<%=raw @subjects.to_json %>'
}

If Yes尝试这个

高图系列 http://www.highcharts.com/docs/chart-concepts/seriesobject 是一个数组,这意味着它可以包含多个系列。这name属性给出了该系列的名称。这data属性代表系列值。

这意味着我们的series一定是这样的。

series: [ 
          {name: 'Subject Type 1', data: [5] }, 
          {name: 'Subject Type 2', data: [6] }, 
          {name: 'Subject Type n', data: [n] }, 
        ]

你有一个Note表有subject_type柱子。每个note必须包含一个subject_type。你只需要找出uniqsubject_type从而成为name of the series和总数subject_type从而成为data of the series.

您可以通过执行以下操作来获取它:

def dashboard
  @series_data = []
  @notes = Note.select("id, subject_type, COUNT(*) AS total").group("id, subject_type")
  # Collect series data that will be show
  @notes.group_by(&:subject_type).each do |k, v|
    @series_data << { name: k.titleize, data: [v.size] }   
  end
end

In your 仪表板.html.erb

series: <%=raw @series_data.to_json %>

正如我在上面看到的,您还需要图表title。你可以用这种方式来做。

title: {
  text: "<strong>Number of Notes By Class Module</strong>"
}

我希望这会有所帮助。

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

Rails 收集 JSON 数据并将其渲染到 Highcharts 图表中 的相关文章

随机推荐

  • android 将xml转换为json

    我正在使用 java json jar 将传入的 xml 转换为可用的 json 我现在遇到的唯一问题是当 xml 包含它崩溃并显示以下日志 03 26 16 54 56 176 30119 30119 nl avrotros opgeli
  • Scala 的 for 推导式:重要特征还是语法糖?

    当我第一次开始研究 Scala 时 我喜欢 for 推导式的外观 它们似乎有点像我在 Java 5 中习惯的 foreach 循环 但有功能限制和很多漂亮的语法 但当我吸收了 Scala 风格后 我发现每次我可以使用 for compres
  • Powershell 获取超过 x 天的文件并移动它们

    我确信这个问题之前可能已经被问过一百万次了 我对 Power Shell 非常陌生 想问问我这样做是否正确 在目录中 我们有很多文件类型 我想要完成的任务是仅移动超过一个月的 PDF 文件 甚至不要碰其他文件扩展名 文件夹中的扩展名是 pd
  • Spring事务管理器是否将连接绑定到线程?

    我找到了以下线程 JdbcTemplate 与 TransactionManager 到底如何协同工作 https stackoverflow com questions 2250754 how exactly jdbctemplate w
  • 为什么要使用处理程序?

    我在一个非常基本的处理程序教程中遇到了这段代码 代码工作正常 但我不明白为什么我必须使用 HandlerprogressDialog dismiss 我删除了处理程序部分并放置progressDialog dismiss in the ru
  • 是否可以在 C++ 运行时动态创建函数?

    C 是一种静态的编译语言 模板在编译时解析等等 但是是否有可能在运行时创建一个函数 该函数未在源代码中描述 并且在编译期间未转换为机器语言 以便用户可以向其抛出源代码中未预期的数据 我知道这不可能以直接的方式发生 但肯定是可能的 有很多编程
  • 如何使用 Bootstrap 3 在下拉列表中选择默认值?

    我想添加一个下拉菜单来选择城市 但不知道如何在选择之前选择默认值 我正在使用 Bootstrap 3 这是 HTML 标记 div class btn group a class btn btn primary dropdown toggl
  • Android-Ndk 与交叉编译?两者都可以,但是当时需要 Android NDK 做什么呢?

    我可以交叉编译任何 C C 应用程序 静态链接 Linux 库并在 Android 上运行 那么 Android ndk 的需求是什么 Android ndk 将我们限制为 Bionic 它具有 gnu libc 的一小部分 直接交叉编译应
  • UIImage 的 jpg 或 png ——哪个更有效?

    我从相机胶卷中抓取一张图像 然后使用它一段时间 并将其以 PNG 格式保存到 iPhone 的磁盘上 我遇到了奇怪的崩溃 可能是由于内存不足 如果我将其保存为 PNG 或 JPG 假设我选择注释来降低 JPG 情况下的质量 会有什么不同吗
  • Amazon S3 上的 Presto

    我正在尝试在 Amazon S3 存储桶上使用 Presto 但在 Internet 上没有找到太多相关信息 我已经在微型实例上安装了 Presto 但我无法弄清楚如何连接到 S3 有一个桶 里面有文件 我有一个正在运行的 hive 元存储
  • 第一个计时器勾选后鼠标事件不起作用

    我正在使用 powershell 开发一个带有图形界面的小工具 我对这个问题感到疯狂 例如 我在表单上有一个标签 显示 ping 的 实时 状态 同时 如果单击标签 则会显示一条弹出消息 function GoogleStatus Labe
  • 在应用程序中存储短音频文件/流式传输

    我计划制作一个利用 Parse com 后端进行用户身份验证 帖子 关注者 等的应用程序 我希望用户能够将示例音乐文件上传到 Parse 或替代解决方案 然后能够流式传输或让其他人能够播放它 有人告诉我可以使用 PFFile 存储文件 但是
  • 公式不使用 EPPLUS 计算

    我想转让一个Datatable超越并计算总和 为此 我使用 epplus 这是我的代码 Sheet Cells A1 LoadFromDataTable dsExcel Tables 0 true TableStyles Medium9 S
  • 如何在intellij idea中启用从源滚动到外部库?

    我想查看外部库树中反编译类的位置 我怎样才能做到这一点 谢谢 找到了一种获取所显示的反编译类的包的方法 ctrl click在代码中的包上 java 文件中最上面的命令
  • 在 Gtk+ 中堆叠小部件

    Gtk 中有没有一种方法可以将一个小部件堆叠在另一个小部件之上 不包括 GtkFixed GtkFixed 不能很好地工作有两个原因 1 我需要 Z 顺序 2 我需要一个小部件来拉伸和填充提供的空间 我使用 Gtk Fixed 实际上是 g
  • Android 主屏幕小部件动画

    我正在考虑创建一个支持动画的小部件 最好是通过 android view animation 框架 或者通过在后台服务触发的代码中设置远程视图的属性 有没有人对这两种方法有任何经验 我正在尝试的是可行的 还是我正在走入死胡同 实际上可以为
  • MacOS 上的打包电子应用程序不会生成子节点进程

    我创建了一个电子应用程序 当在主进程中运行时 它将生成一个节点子进程 该子进程将提供一些 html 内容 app on ready gt check for port 80 const port 80 find port port then
  • 来自未完全填充的字符数组的字符串

    显然 下面的代码给出了一个相当奇怪的结果 char data new char 5 data 0 a data 1 b data 2 c out println new String data abc 有没有一种方法可以从字符数组创建字符串
  • Android上React Native Axios上传图片返回网络错误

    我尝试使用以下命令将一些数据 包括图像 上传到服务器Axios 它在 iOS 上完美运行 但在 Android 上 它返回Network Error const data new FormData data append tag tag M
  • Rails 收集 JSON 数据并将其渲染到 Highcharts 图表中

    我正在尝试将标签传递到 x 轴上的 Highcharts 柱形图 目前 图表的工作方式是渲染数据 但 x 轴标签显示 0 1 2 3 等 这是没有任何可渲染内容时的默认值 注释 控制器 def dashboard data Note get