轴格式日期 Google 图表中的 2 个问题
2 problems in axis format date Google charts
我正在尝试像这样在轴上设置日期格式:18 年 5 月。我的格式如下所示:'MMM \' yy'。我有两个问题:
1、如何使月份首字母大写?我需要生成刻度来实现这个吗?
2. 撇号有问题,即在它后面应用时,不再使用格式,并且不显示撇号本身。例如,上面看起来像这样:may yy。我还尝试使用 ASCII 和 Unicode 中的撇号字符,但这不起作用。只是 Google 图表可能将撇号视为不能使用的字符...有什么建议吗?
编辑:
问题已用撇号解决。 \u2019
不完全是撇号。正确的撇号是:https://unicode-table.com/en/0027/,不过看起来还是不错的。
但是,就我而言,月份的第一个字母仍然很小,因为我使用的是波兰语翻译。对此有什么建议吗?
编辑:
问题已解决。
你可以这样使用 unicode --> \u2019
hAxis: {
format: 'MMM \u2019yy'
}
请参阅以下工作片段...
google.charts.load('current', {
packages: ['controls', 'corechart', 'table']
}).then(function () {
var data = new google.visualization.DataTable();
data.addColumn('date', 'x');
data.addColumn('number', 'y');
data.addRows([
[new Date(2018, 4, 1), 1],
[new Date(2018, 5, 2), 2],
[new Date(2018, 6, 3), 3],
]);
var chart = new google.visualization.LineChart(document.getElementById('chart'));
chart.draw(data, {
hAxis: {
format: 'MMM \u2019yy'
}
});
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart"></div>
编辑
使用语言代码时首字母大写,
使用 ticks
选项而不是 format
然后手动更改第一个字母 toUpperCase
...
ticks: data.getDistinctValues(0).map(function (date) {
var value = formatDate.formatValue(date);
value = value.substring(0, 1).toUpperCase() + value.substr(1);
return {
v: date,
f: value
};
})
请参阅以下工作片段...
google.charts.load('current', {
packages: ['corechart'],
language: 'pl'
}).then(function () {
var data = new google.visualization.DataTable();
data.addColumn('date', 'x');
data.addColumn('number', 'y');
data.addRows([
[new Date(2018, 4, 1), 1],
[new Date(2018, 5, 2), 2],
[new Date(2018, 6, 3), 3],
]);
var formatDate = new google.visualization.DateFormat({
pattern: 'MMM \u2019yy'
});
var chart = new google.visualization.LineChart(document.getElementById('chart'));
chart.draw(data, {
hAxis: {
ticks: data.getDistinctValues(0).map(function (date) {
var value = formatDate.formatValue(date);
value = value.substring(0, 1).toUpperCase() + value.substr(1);
return {
v: date,
f: value
};
})
}
});
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart"></div>
我正在尝试像这样在轴上设置日期格式:18 年 5 月。我的格式如下所示:'MMM \' yy'。我有两个问题: 1、如何使月份首字母大写?我需要生成刻度来实现这个吗? 2. 撇号有问题,即在它后面应用时,不再使用格式,并且不显示撇号本身。例如,上面看起来像这样:may yy。我还尝试使用 ASCII 和 Unicode 中的撇号字符,但这不起作用。只是 Google 图表可能将撇号视为不能使用的字符...有什么建议吗?
编辑:
问题已用撇号解决。 \u2019
不完全是撇号。正确的撇号是:https://unicode-table.com/en/0027/,不过看起来还是不错的。
但是,就我而言,月份的第一个字母仍然很小,因为我使用的是波兰语翻译。对此有什么建议吗?
编辑:
问题已解决。
你可以这样使用 unicode --> \u2019
hAxis: {
format: 'MMM \u2019yy'
}
请参阅以下工作片段...
google.charts.load('current', {
packages: ['controls', 'corechart', 'table']
}).then(function () {
var data = new google.visualization.DataTable();
data.addColumn('date', 'x');
data.addColumn('number', 'y');
data.addRows([
[new Date(2018, 4, 1), 1],
[new Date(2018, 5, 2), 2],
[new Date(2018, 6, 3), 3],
]);
var chart = new google.visualization.LineChart(document.getElementById('chart'));
chart.draw(data, {
hAxis: {
format: 'MMM \u2019yy'
}
});
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart"></div>
编辑
使用语言代码时首字母大写,
使用 ticks
选项而不是 format
然后手动更改第一个字母 toUpperCase
...
ticks: data.getDistinctValues(0).map(function (date) {
var value = formatDate.formatValue(date);
value = value.substring(0, 1).toUpperCase() + value.substr(1);
return {
v: date,
f: value
};
})
请参阅以下工作片段...
google.charts.load('current', {
packages: ['corechart'],
language: 'pl'
}).then(function () {
var data = new google.visualization.DataTable();
data.addColumn('date', 'x');
data.addColumn('number', 'y');
data.addRows([
[new Date(2018, 4, 1), 1],
[new Date(2018, 5, 2), 2],
[new Date(2018, 6, 3), 3],
]);
var formatDate = new google.visualization.DateFormat({
pattern: 'MMM \u2019yy'
});
var chart = new google.visualization.LineChart(document.getElementById('chart'));
chart.draw(data, {
hAxis: {
ticks: data.getDistinctValues(0).map(function (date) {
var value = formatDate.formatValue(date);
value = value.substring(0, 1).toUpperCase() + value.substr(1);
return {
v: date,
f: value
};
})
}
});
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart"></div>