使用lazy-highcharts gem将图表导出为图像

时间:2013-04-08 08:23:38

标签: ruby-on-rails ruby lazy-high-charts

我能够使用惰性高图生成图表,但我想将这些图表导出为图像,这是我用于生成图表的代码

@fields= ReportHistory.all_history
@h = LazyHighCharts::HighChart.new('graph') do |f|
f.chart(:renderTo => 'container', :zoomType => 'x',:spacingRight=> 20)
    f.title(:text => 'Reports')
    f.xAxis(:title=>{:text => 'Days'}, :categories =>@fields.map{|x|x.Date}.last(limit=15))
    f.yAxis(:title=>{:text=> 'Jobs_count', :type =>'integer' ,:max => 5000000})
    f.series(:name =>'jobs_count', :data=> @fields.map{|x| x.jobs_count.to_i }.last(limit=15))
    f.export(:type=> 'image/jpeg')
end

在我看来,我要显示我有这个图表

<%= high_chart("my_id", @h) %>

我希望得到像here这样的效果,我可以使用导出按钮下载图表图像。

2 个答案:

答案 0 :(得分:1)

首先,您需要确保导出模块可用并由您的视图加载:

<%= javascript_include_tag "vendor/highcharts/highcharts.js" %>
<%= javascript_include_tag "vendor/highcharts/modules/exporting.js" %>

第二......没什么可做的。加载导出模块后,它将添加菜单以导出图形。

注意:

  • 您可能需要根据设置调整路径。
  • exporting.js是您从Highcharts下载的软件包的一部分。

答案 1 :(得分:0)

您可以在application.js

中添加/更新以下内容
//= require highcharts/highcharts
//= require highcharts/highcharts-more
//= require highcharts/modules/no-data-to-display
//= require highcharts/modules/exporting

如果您还想更新highcharts的供应商资产,可以运行:

rake highcharts:update