Я бы лично рекомендовал использовать Highcharts Highcahrts . Он имеет полную API-документацию, дающую вам возможность загружать данные в верхние диаграммы. Вот пример круговой диаграммы, которую вы вполне можете искать http://www.highcharts.com/demo/pie-basic. Вы можете попробовать сделать что-то вроде следующего:
Контроллер
def index
@title = "Country"
@country = Country.all
@data = []
Country.all.each do |country|
countryData = { :CountryName => country.country.to_s,
:values => [] }
['England', 'France', 'Italy', 'Spain','Germany'].each do |NameOfCountry|
end
@data.push(countryData) #Push this data back to the variable countryData.
end
конец
View
Если вы используете высокие графики, у вас, вероятно, будет что-то базовое, похожее на это:
series: [{
type: 'pie',
name: 'Browser share',
data: [
['Firefox', 45.0],
['IE', 26.8],
Однако вышесказанное является просто необработанными статическими данными. Взяв кое-что из того, что я вам предоставил, вы вполне могли бы сделать что-то вроде этого:
name: '<%= data[ :CountryName] %>',
data: [<% data[ :values ].each do |value| %>
<%= value %>,
<% end %>]
Что вы можете сделать здесь - это проанализировать данные CountryName, а также значения, которые вы вводите. Надеюсь, это поможет.
В ответ на ваш вопрос вам не обязательно использовать данные XML или CSV. Обычно вы будете использовать JSON или XML для загрузки ваших данных.