carta de flash abierta carriles cuestión eje x
-
26-09-2019 - |
Pregunta
Estoy utilizando la carta de apertura del flash 2 (el plugin) en mi solicitud rieles. Todo es un aspecto liso, excepto para el rango en mi eje x. Estoy creando una línea para representar costo plan de teléfono celular más de una cantidad específica de uso y estoy generar 8 valores, 1-5 están por debajo del uso permitido mientras 6-8 son manifestaciones del costo para el uso sobre el límite.
El problema que estoy encontrando es cómo establecer el rango del eje X en el rubí en los carriles a algo específico a los datos. En este momento los valores que se muestran son los índices de la matriz que estoy dando. Cuando trato de entregar un hash a los valores de la tabla ni siquiera se carga en absoluto.
Así que básicamente necesita ayuda para obtener una forma de establecer los datos de mi línea adecuadamente para que aparezca correctamente, en este momento se está tratando a todos los valores como si se representa el valor x del índice de la matriz.
Esta es una captura de pantalla que puede ser una descripción mejor que lo que estoy diciendo: http://i163.photobucket.com/albums/t286/Xeno56/Screenshot.png Tenga en cuenta que estos valores son correctos sólo el rango en el eje x es incorrecta, debería ser algo así como 100, 200 , 300, 400, 500, 600, 700
Código:
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
También el otro problema que estoy teniendo es que no puedo simplemente añadir algunos puntos como los valores I dan son tomado como x es la posición de elementos en la matriz e y siendo el valor, mientras que necesito para poder especificar los valores de x e y para cada punto, así que no tengo para amortiguar mi matriz con un montón de valores nulos
Solución 3
terminé abandonando la carta de apertura del flash 2 y va con Flotr
Otros consejos
Hay que crear un objeto XAXIS para establecer las etiquetas:
x = XAxis.new
x.labels = [100, 200, 300, 400, 500, 600, 700].collect(&:to_s)
chart.x_axis = x
A partir de mi experiencia hay muchas maneras de hacer las cosas con Open flash Gráfico 2. mikezter ejemplo anterior es casi correcta; Sin embargo, así es como me puse las etiquetas de eje x.
x = XAxis.new
x.set_labels([100, 200, 300, 400, etc]).collect(&:to_s)
chart.x_axis = x
Tenga en cuenta que la única diferencia entre mi ejemplo y mikezter de es que utilizo:
x.set_labels([array values etc])
en lugar de
x.labels = [array values etc]