【问题标题】:open flash chart rails x-axis issue打开闪存图表导轨 x 轴问题
【发布时间】:2011-02-06 14:58:19
【问题描述】:

我在我的 rails 应用程序中使用 open flash chart 2(插件)。除了我的 x 轴上的范围外,一切看起来都很顺利。我正在创建一条线来表示特定使用量的手机计划成本,并生成 8 个值,1-5 低于允许的使用量,而 6-8 表示使用超过限制的成本。

我遇到的问题是如何将 ruby​​ on rails 中的 X 轴范围设置为特定于数据的值。现在显示的值是我给出的数组的索引。当我尝试将哈希值传递给图表时,图表甚至根本不会加载。

所以基本上我需要一种方法来正确设置我的行的数据以使其正确显示,现在它正在将每个值视为代表数组索引的 x 值。

这是一个屏幕截图,可能比我所说的更好:http://i163.photobucket.com/albums/t286/Xeno56/Screenshot.png 请注意,这些值是正确的,只是 x 轴上的范围不正确,应该是 100、200、300 , 400, 500, 600, 700

代码:

y = YAxis.new
y.set_range(0,100, 20)

x_legend = XLegend.new("Usage")
x_legend.set_style('{font-size: 20px; color: #778877}')

y_legend = YLegend.new("Cost")
y_legend.set_style('{font-size: 20px; color: #770077}')

chart =OpenFlashChart.new
chart.set_x_legend(x_legend)
chart.set_y_legend(y_legend)
chart.y_axis = y

line = Line.new
line.text = plan.name
line.width = 2
line.color = '#006633'
line.dot_size = 2
line.values = generate_data(plan)     
chart.add_element(line)

def generate_data(plan)
  values = []
  #generate below threshold numbers
  5.times do |x|
    usage = plan.usage / 5 * x 
    cost = plan.cost
    values << cost
  end
  #generate above threshold numbers
  3.times do |x|
    usage = plan.usage + ((plan.usage / 5) * x)
    cost = plan.cost + (usage * plan.overage)
    values << cost
  end
  return values
end

我遇到的另一个问题是我不能只添加几个点,因为我给出的任何值都被视为 x 是数组中的元素位置,y 是值,而我需要能够为每个点指定 x 和 y 值,这样我就不必用一堆空值来缓冲我的数组

【问题讨论】:

  • 您能详细说明您正在使用的插件/宝石吗?
  • 插件开启闪图2

标签: ruby-on-rails open-flash-chart


【解决方案1】:

您必须创建一个 XAxis 对象来设置标签:

x = XAxis.new
x.labels =  [100, 200, 300, 400, 500, 600, 700].collect(&:to_s)
chart.x_axis = x

【讨论】:

  • x 标签的显示方式仍然相同
  • 现在它只显示在 0,0 处堆叠的所有标签
  • 你用的是什么版本的插件?
【解决方案2】:

根据我的经验,使用 Open Flash Chart 2 可以通过多种方式进行操作。上面的 mikezter 示例几乎是正确的;但是,这就是我设置 XAxis 标签的方式。

x = XAxis.new
x.set_labels([100, 200, 300, 400, etc]).collect(&:to_s)
chart.x_axis = x

请注意,我的示例和 mikezter 的唯一区别是我使用的是:

x.set_labels([array values etc])

而不是

x.labels = [array values etc] 

【讨论】:

  • 原来 .set_labels 和 .labels 是彼此的别名。
【解决方案3】:

我最终放弃了打开的 flash chart 2 并选择了 Flotr

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 2014-05-17
    • 2018-01-10
    • 1970-01-01
    相关资源
    最近更新 更多