如何更改 Chartkick 地理图中的文本 'Value'
How to change the text 'Value' in Chartkick's geochart
我正在使用以下内容渲染地理图表:
<%= javascript_include_tag "//www.google.com/jsapi", "chartkick" %>
<%= geo_chart Company.group(:country).count, colors: ["#33C1FF", "#008ED6"] %>
效果很好,但地图上用于指定每个国家/地区计数的文本是 'Value'。
我正在使用 Google 图表 API 来执行此操作,并查看他们的文档,他们可以通过这样做来使用 'Popularity' 而不是 'Value' :
var data = google.visualization.arrayToDataTable([
['Country', 'Popularity'],
['Germany', 200],
['United States', 300],
['Brazil', 400],
['Canada', 500],
['France', 600],
['RU', 700]
]);
我试图通过直接将其添加到 geo_chart 来复制它,但仍然出现 'Value'。你可以在下面看到我的尝试:
<%= geo_chart [['Popularity'], ['Germany', 200], ['United States', 300], ['Brazil', 400], ['Canada', 500], ['France', 600], ['RU', 700]], colors: ["#33C1FF", "#008ED6"] %>
有什么想法吗?
谢谢
我检查了 Chartkick 上的代码,看起来这个值是固定的。因此,我直接使用 Google Geomap 并能够根据需要进行自定义。下面是我的代码:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["geomap"]});
google.setOnLoadCallback(drawMap);
function drawMap() {
var data = google.visualization.arrayToDataTable([
['Country', 'Data Feeds'],
<% Company.country_count.each do |key, value| %>
['<%= Company.country_name("#{key}") %>', <%= value%>],
<% end %>
]);
var options = {
colorAxis: {colors: ['#33C1FF', '#008ED6']},
backgroundColor: '#FFFFFF',
datalessRegionColor: '#F5F5F5',
defaultColor: '#f5f5f5',
legend: 'none',
};
var chart = new google.visualization.GeoChart(document.getElementById('datafeeds_geomap'));
chart.draw(data, options);
};
</script>
<div id="datafeeds_geomap" style="height: 300px; text-align: center; color: #999; line-height: 300px; font-size: 14px; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Arial, Helvetica, sans-serif;">Loading...</div>
我正在使用以下内容渲染地理图表:
<%= javascript_include_tag "//www.google.com/jsapi", "chartkick" %>
<%= geo_chart Company.group(:country).count, colors: ["#33C1FF", "#008ED6"] %>
效果很好,但地图上用于指定每个国家/地区计数的文本是 'Value'。
我正在使用 Google 图表 API 来执行此操作,并查看他们的文档,他们可以通过这样做来使用 'Popularity' 而不是 'Value' :
var data = google.visualization.arrayToDataTable([
['Country', 'Popularity'],
['Germany', 200],
['United States', 300],
['Brazil', 400],
['Canada', 500],
['France', 600],
['RU', 700]
]);
我试图通过直接将其添加到 geo_chart 来复制它,但仍然出现 'Value'。你可以在下面看到我的尝试:
<%= geo_chart [['Popularity'], ['Germany', 200], ['United States', 300], ['Brazil', 400], ['Canada', 500], ['France', 600], ['RU', 700]], colors: ["#33C1FF", "#008ED6"] %>
有什么想法吗?
谢谢
我检查了 Chartkick 上的代码,看起来这个值是固定的。因此,我直接使用 Google Geomap 并能够根据需要进行自定义。下面是我的代码:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["geomap"]});
google.setOnLoadCallback(drawMap);
function drawMap() {
var data = google.visualization.arrayToDataTable([
['Country', 'Data Feeds'],
<% Company.country_count.each do |key, value| %>
['<%= Company.country_name("#{key}") %>', <%= value%>],
<% end %>
]);
var options = {
colorAxis: {colors: ['#33C1FF', '#008ED6']},
backgroundColor: '#FFFFFF',
datalessRegionColor: '#F5F5F5',
defaultColor: '#f5f5f5',
legend: 'none',
};
var chart = new google.visualization.GeoChart(document.getElementById('datafeeds_geomap'));
chart.draw(data, options);
};
</script>
<div id="datafeeds_geomap" style="height: 300px; text-align: center; color: #999; line-height: 300px; font-size: 14px; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Arial, Helvetica, sans-serif;">Loading...</div>