Ответ 1
Этот параметр не предоставляется API; вы просто не можете этого сделать.
Как я могу центрировать заголовок в линейной диаграмме из API графиков Google (не для графических карт Google).
Я не вижу никаких параметров, таких как titlePosition: 'center'
Спасибо!
function drawVisualization() {
// Create and populate the data table.
var data = google.visualization.arrayToDataTable([
['xValues', 'yValues'],
[0, 34.92],
[389, 39.44],
[488, 52.11],
[652, 55.4]
]);
var options = {
curveType: 'none', // 'function'
title: 'Title',
titleTextStyle: {
color: '333333',
fontName: 'Arial',
fontSize: 10
},
legend: 'none',
enableInteractivity: false
};
var chart = new google.visualization.LineChart(document.getElementById('visualization'));
chart.draw(data, options);
}
Этот параметр не предоставляется API; вы просто не можете этого сделать.
Я использую: titlePosition: 'none'
И вставьте заголовок с обычным HTML
Другой ответ предлагает следующее:
$("text:contains(" + vencOptions.title + ")").attr({'x':'60', 'y':'20'})
Источник: fooobar.com/questions/325508/...
После рисования диаграммы вызовите функцию обработчика событий:
google.visualization.events.addListener(chart, 'ready', Title_center);
И определите функцию как:
function Title_center(){
var title_chart=$("#payer_chart_div svg g").find('text').html();
$("#payer_chart_div svg").find('g:first').html('<text text-anchor="start" x="500" y="141" font-family="Arial" font-size="18" font-weight="bold" stroke="none" stroke-width="0" fill="#000000">'+title_chart+'</text>');
}
Просто вставьте заголовок диаграммы и добавьте атрибуты X:500
, y:141
.
Вы можете легко сделать это с помощью информации обратного вызова из диаграммы после ее рисования и немного математики, работающей над некоторым текстом в div.
Содержите свою диаграмму в позиции: относительный div. Добавьте div под диаграммой и поместите как это, так и абсолютную диаграмму.
Затем вы можете перемещать верхнюю и левую позиции div с небольшой математикой средней школы.
<https://jsfiddle.net/o6zmbLvk/2/>
$("#YOUR_GRAPH_WRAPPER svg text").first()
.attr("x", (($("#time-series-graph svg").width() - $("#YOUR_GRAPH_WRAPPER svg text").first().width()) / 2).toFixed(0));
$("text:contains(" + vencOptions.title + ")").attr({'x':'60', 'y':'20'})
//OR
$("#YOUR_GRAPH_WRAPPER svg text").first().attr("x", (($("#time-series-graph svg").width() - parseInt($("#YOUR_GRAPH_WRAPPER svg text").first().attr('x'),10)) / 2).toFixed(0));
Чтобы отобразить заголовок диаграммы в центре диаграммы, используйте приведенный ниже фрагмент кода; он будет динамически устанавливать заголовок в центре контейнера диаграммы.
Добавить ready
слушателя события; google.visualization.events.addListener(myChart, 'ready', titleCenter);
и добавьте функцию titleCenter
.
google.charts.load('current', {packages: ['corechart', 'bar']});
google.charts.setOnLoadCallback(drawAxisTickColors);
var options = {
title: "Chart Title",
titleTextStyle: {
bold: true,
italic: true,
fontSize: 18,
},
width: 600,
height: 400,
legend: { position: 'top', maxLines: 3 },
bar: { groupWidth: '75%' },
isStacked: true,
};
function drawAxisTickColors() {
var data = google.visualization.arrayToDataTable([
['Genre', 'Fantasy & Sci Fi', 'Romance', 'Mystery/Crime', 'General',
'Western', 'Literature', { role: 'annotation' } ],
['2010', 10, 24, 20, 32, 18, 5, ''],
['2020', 16, 22, 23, 30, 16, 9, ''],
['2030', 28, 19, 29, 30, 12, 13, '']
]);
var myChart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
google.visualization.events.addListener(myChart, 'ready', titleCenter);
myChart.draw(data, options);
}
function titleCenter() {
var $container = $('#chart_div');
var svgWidth = $container.find('svg').width();
var $titleElem = $container.find("text:contains(" + options.title + ")");
var titleWidth = $titleElem.html().length * ($titleElem.attr('font-size')/2);
var xAxisAlign = (svgWidth - titleWidth)/2;
$titleElem.attr('x', xAxisAlign);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
function Title_center(total) {
var title_chart = $("#chart svg g").find('text').html();
var x = $("#chart svg g").find('rect').attr('width');
var y = $("#chart svg g").find('rect').attr('y');
alert(x);
$("#chart svg").find('g:first')
.html('<text text-anchor="start" x="'+x/2+'" y="'+y+'" font-family="Arial" font-size="12" font-weight="bold" stroke="none" stroke-width="0" fill="#000000">' + total + '</text>');
}
Создайте эту функцию в скрипте и вызывайте после рисования диаграммы:
google.visualization.events.addListener(chart, 'ready', Title_center("Test success"));
document.getElementById('div'). getElementsByTagName ('text') [0].setAttribute('x', '350')