我在我的 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 值,所以我不必用一堆空值来缓冲我的数组