2014-12-21 21 views
6

I chartkick kullanarak, aşağıdaki kodRails chartkick: yalnızca eksenlerde tamsayı değerleri almak. Ayrık veya başka bir şey mi kullanıyorsunuz?

<% data = [ 
[1,1],[2,3],[3,5],[4,8],[6,4],[7,2] 
] %> 

<%= line_chart data, {discrete: true, library: {width: 600} }%> 

olması demek, bu, dikey eksen tamsayılar kullanılarak işaretlenebilir istediğiniz aşağıdaki grafiktir

Description

üretir. (Değil ondalıklar) (ı discrete seçenek Bunu yapmak gerekiyordu düşündüm ama bu örnek için yaptım tüm numaraya zaman yatay eksende elemanların biçimini değiştirmek oldu yani

<%= line_chart data, {library: {width: 600} }%> 

üretir aşağıdaki kodu Bu

Yuck

).

Bu yüzden sorum şu: tam olarak sayıları olan rakamları değiştirmek yerine, discrete tam olarak ne yapıyor. Dikey eksen tam sayılarındaki sayıları yapmak için nasıl kullanabilirim? (Veya, bunu yapmak için kullanılamazsa, ne kullanabilirim?)

cevap

4

discrete seçeneği yalnızca 'büyük eksen' için geçerlidir ve ayrı bir eksen içindir. Okuması gereken ayrık ve sürekli eksenler arasında bir fark var.

Ve ben sadece yapılandırma seçeneklerini okudum. Görünüşe göre, her bir eksene ticks seçeneğini geçirebilirsiniz. Ve keneler işaretçilerdir. Verilerinizden her bir aralık için minimum ve maksimum değeri alabilir ve ardından 1 tamsayı aralığıyla dağıtabilirsiniz.

Böylece aşağıdaki sizin için eser olmalıdır:

data = [[1,1],[2,3],[3,5],[4,8],[6,4],[7,2]] 

x_values = data.map(&:first) 
x_range = (x_values.min)..(x_values.max) 

y_values = data.map(&:last) 
y_range = (y_values.min)..(y_values.max) 

library_options = { 
    width: 600, 
    hAxis: {ticks: x_range.to_a}, 
    vAxis: {ticks: y_range.to_a} 
    # to_a because I don't know if Range is acceptable input 
} 

line_chart(data, {library: library_options}) 

fazla seçenek için, Google Chart's configuration options for line charts bakabilirsiniz.

+0

Teşekkür ederim, bu mükemmel çalıştı. Bağlantı da son derece yardımcı oldu. –

İlgili konular