سؤال

أنا أستخدم Open Flash Chart 2 (المكون الإضافي) في تطبيق Rails الخاص بي. كل شيء يبدو سلسًا باستثناء النطاق الموجود على محور X الخاص بي. أقوم بإنشاء خط لتمثيل تكلفة خطة الهاتف الخلوي على مبلغ محدد من الاستخدام ، وأنا أقوم بإنشاء 8 قيم ، 1-5 أقل من الاستخدام المسموح به في حين أن 6-8 هي مظاهرات للتكلفة للاستخدام على الحد الأقصى.

المشكلة التي أواجهها هي كيفية ضبط نطاق المحور X في Ruby on Rails إلى شيء خاص بالبيانات. الآن القيم التي يتم عرضها هي فهارس الصفيف التي أعطيها. عندما أحاول تسليم تجزئة إلى القيم التي لا يتم تحميلها على الإطلاق.

لذا ، فأنا بحاجة إلى مساعدة في الحصول على وسيلة لتعيين البيانات لخطتي بشكل صحيح بحيث يتم عرضها بشكل صحيح ، وهي تعامل الآن كل قيمة كما لو أنها تمثل قيمة X لفهرس الصفيف.

فيما يلي لقطة شاشة قد تكون وصفًا أفضل من ما أقوله: http://i163.photobucket.com/albums/t286/xeno56/screenshot.png لاحظ أن هذه القيم صحيحة فقط النطاق على المحور السيني غير صحيح ، يجب أن يكون مثل 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 لكل نقطة ، لذلك لا يتعين علي تخزين صفيفتي مع مجموعة من القيم الفارغة

هل كانت مفيدة؟

المحلول 3

انتهى بي الأمر بالتخلي عن مخطط فلاش مفتوح 2 والذهاب مع Flotr

نصائح أخرى

يجب عليك إنشاء كائن xaxis لتعيين الملصقات:

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

من تجربتي ، هناك العديد من الطرق للقيام بالأشياء باستخدام مخطط فلاش مفتوح 2. مثال Mikezter أعلاه صحيح تقريبًا ؛ ومع ذلك ، هذه هي الطريقة التي قمت بتعيين ملصقات xaxis.

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

لاحظ الفرق الوحيد بين مثالي و Mikezter's هو أنني أستخدمه:

x.set_labels([array values etc])

بدلاً من

x.labels = [array values etc] 
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top