Я использую открытую флеш-карту 2 (плагин) в своем приложении rails. Все выглядит гладко, за исключением диапазона на моей оси х. Я создаю строку, чтобы представить стоимость плана сотового телефона для определенного объема использования, и я генерирую 8 значений, 1-5 ниже допустимого использования, а 6-8 - демонстрацию стоимости использования сверх лимита.
Проблема, с которой я сталкиваюсь, заключается в том, чтобы установить диапазон оси X в ruby на рельсах для чего-то определенного для данных. Прямо сейчас отображаемые значения являются индексами массива, который я даю. Когда я пытаюсь передать хэш значениям, диаграмма даже не загружается.
Так что в основном мне нужна помощь, чтобы получить способ правильно установить данные для моей строки, чтобы они правильно отображались, сейчас он обрабатывает каждое значение, как если бы оно представляло значение 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 для каждой точки, поэтому мне не нужно буферизовать мой массив с кучей нулевых значений