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

¿Fue útil?

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] 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top