使用 GoogleVis 折线图的 X 轴小数
Decimals in X-axis using GoogleVis line chart
我正在尝试使用 R 包 GoogleVis 绘制一个简单的折线图。在我的图中,我的 x 轴是一个 "year" 变量。因此,当我使用年份作为 "double" 绘图时,绘图显示数据中不存在的小数,如下所示:
然后我尝试使用 mutate 并将年份转换为因子。所以,我解决了 "decimals" 问题,但我在图表中有一些空白 =| , 如下:
这是一个可重现的代码:
library(dplyr)
library(googleVis)
# Simple data
df <- tribble(
~year, ~value,
2014, 15,
2015, 18,
2016, 14,
2017, 25
)
# X axis with decimals
df %>% gvisLineChart() %>% plot()
# X axis with white spaces
df %>% mutate(year = as.factor(year)) %>% gvisLineChart() %>% plot()
有人知道如何帮助我吗?我想继续使用相同的包 (googleVis),并且我不想在 x 轴上 "decimals" 和 "white spaces"。
提前致谢。
弗拉基米尔.
已编辑
注释后的代码:
df %>% gvisLineChart(., options = list(hAxis = "{format: '0', ticks: data.getDistinctValues(0)}")) %>% plot()
要删除小数点,请在绘制图表时使用以下配置选项。
hAxis: {
format: '0'
}
请参阅以下工作片段...
google.charts.load('current', {
packages: ['corechart']
}).then(function () {
var data = google.visualization.arrayToDataTable([
["year", "value"],
[2014, 15],
[2015, 18],
[2016, 14],
[2017, 25],
]);
var options = {
hAxis: {
format: '0'
},
height: 288,
vAxis: {
format: '0',
viewWindow: {
min: 10,
max: 30
}
}
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
但是,这有时会导致标签重复。
虽然没有显示小数位,
该图表仍然使用诸如 --> 2014.0, 2014.5, 2015.0, 2015.5
.
之类的值
这导致重复标签 --> 2014, 2014, 2015, 2015
为确保标签不重复,您可以使用 ticks
选项。
ticks
是要在轴上使用的值数组。
hAxis: {
format: '0',
ticks: [2014, 2015, 2016, 2017]
}
还有一个数据 table 方法可以动态构建这个数组 --> getDistinctValues(columnIndex)
有关示例,请参见以下工作片段...
google.charts.load('current', {
packages: ['corechart']
}).then(function () {
var data = google.visualization.arrayToDataTable([
["year", "value"],
[2014, 15],
[2015, 18],
[2016, 14],
[2017, 25],
]);
var options = {
hAxis: {
format: '0',
ticks: data.getDistinctValues(0)
},
height: 288,
vAxis: {
format: '0',
viewWindow: {
min: 10,
max: 30
}
}
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
注意:白色space是将年份数字转换为字符串的结果,
如以下代码片段所示。
google.charts.load('current', {
packages: ['corechart']
}).then(function () {
var data = google.visualization.arrayToDataTable([
["year", "value"],
['2014', 15],
['2015', 18],
['2016', 14],
['2017', 25],
]);
var options = {
height: 288,
vAxis: {
format: '0',
viewWindow: {
min: 10,
max: 30
}
}
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
轴上的字符串导致 离散 轴,
数字 连续 轴。
discrete 轴不支持 format
和 ticks
选项...
我正在尝试使用 R 包 GoogleVis 绘制一个简单的折线图。在我的图中,我的 x 轴是一个 "year" 变量。因此,当我使用年份作为 "double" 绘图时,绘图显示数据中不存在的小数,如下所示:
然后我尝试使用 mutate 并将年份转换为因子。所以,我解决了 "decimals" 问题,但我在图表中有一些空白 =| , 如下:
这是一个可重现的代码:
library(dplyr)
library(googleVis)
# Simple data
df <- tribble(
~year, ~value,
2014, 15,
2015, 18,
2016, 14,
2017, 25
)
# X axis with decimals
df %>% gvisLineChart() %>% plot()
# X axis with white spaces
df %>% mutate(year = as.factor(year)) %>% gvisLineChart() %>% plot()
有人知道如何帮助我吗?我想继续使用相同的包 (googleVis),并且我不想在 x 轴上 "decimals" 和 "white spaces"。
提前致谢。 弗拉基米尔.
已编辑
注释后的代码:
df %>% gvisLineChart(., options = list(hAxis = "{format: '0', ticks: data.getDistinctValues(0)}")) %>% plot()
要删除小数点,请在绘制图表时使用以下配置选项。
hAxis: {
format: '0'
}
请参阅以下工作片段...
google.charts.load('current', {
packages: ['corechart']
}).then(function () {
var data = google.visualization.arrayToDataTable([
["year", "value"],
[2014, 15],
[2015, 18],
[2016, 14],
[2017, 25],
]);
var options = {
hAxis: {
format: '0'
},
height: 288,
vAxis: {
format: '0',
viewWindow: {
min: 10,
max: 30
}
}
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
但是,这有时会导致标签重复。
虽然没有显示小数位,
该图表仍然使用诸如 --> 2014.0, 2014.5, 2015.0, 2015.5
.
之类的值
这导致重复标签 --> 2014, 2014, 2015, 2015
为确保标签不重复,您可以使用 ticks
选项。
ticks
是要在轴上使用的值数组。
hAxis: {
format: '0',
ticks: [2014, 2015, 2016, 2017]
}
还有一个数据 table 方法可以动态构建这个数组 --> getDistinctValues(columnIndex)
有关示例,请参见以下工作片段...
google.charts.load('current', {
packages: ['corechart']
}).then(function () {
var data = google.visualization.arrayToDataTable([
["year", "value"],
[2014, 15],
[2015, 18],
[2016, 14],
[2017, 25],
]);
var options = {
hAxis: {
format: '0',
ticks: data.getDistinctValues(0)
},
height: 288,
vAxis: {
format: '0',
viewWindow: {
min: 10,
max: 30
}
}
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
注意:白色space是将年份数字转换为字符串的结果,
如以下代码片段所示。
google.charts.load('current', {
packages: ['corechart']
}).then(function () {
var data = google.visualization.arrayToDataTable([
["year", "value"],
['2014', 15],
['2015', 18],
['2016', 14],
['2017', 25],
]);
var options = {
height: 288,
vAxis: {
format: '0',
viewWindow: {
min: 10,
max: 30
}
}
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
轴上的字符串导致 离散 轴,
数字 连续 轴。
discrete 轴不支持 format
和 ticks
选项...