Как разбить длинный ярлык трюка на несколько строк? - PullRequest
0 голосов
/ 04 мая 2019

Я использую plot.ly для показа графиков своим пользователям.Но метки оси X слишком длинные.Что происходит, так это то, что метка последнего бара находится вне графика и не видна.Поэтому я хочу разбить их на несколько строк, чтобы их было легче читать. Есть ли способ для этого с конфигурацией plot.ly или около того?

Текущий график с длинными метками на оси x:

current graph with long labels on x-axis

1 Ответ

0 голосов
/ 05 мая 2019

Вы могли бы передать трассировки в функцию, которая может сделать обертку за вас, так как я не могу найти сюжетное решение, я предоставляю эту альтернативу, в основном, я получаю доступ к свойству x каждой трассы и затем добавляю<br> с использованием регулярных выражений, проверьте приведенный ниже пример и дайте мне знать, если у вас есть какие-либо сомнения или проблемы.

var trace1 = {
	x: [
		"this is a very long title that needs to be wrapped up for readability purposes2",
		"this is a very long title that needs to be wrapped up for readability purposes2",
		"this is a very long title that needs to be wrapped up for readability purposes3"
	],
	y: [90, 40, 60],
	type: "bar",
	name: "New York Zoo"
};

var trace2 = {
	x: [
		"this is a very long title that needs to be wrapped up for readability purposes",
		"this is a very long title that needs to be wrapped up for readability purposes2",
		"this is a very long title that needs to be wrapped up for readability purposes3"
	],
	y: [10, 80, 45],
	type: "bar",
	name: "San Francisco Zoo"
};
addBreaksAtLength = 10;
textwrapper = function(traces) {
	for (trace of traces) {
		trace.x = trace.x.map(text => {
			let rxp = new RegExp(".{1," + addBreaksAtLength + "}", "g");
			return text.match(rxp).join("<br>");
		});
	}
	return traces;
};
var data = textwrapper([trace1, trace2]);
var layout = {
	title: "Hide the Modebar",
	showlegend: true
};
Plotly.newPlot("myDiv", data, layout, { displayModeBar: false });
<head>
  <!-- Plotly.js -->
  <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
</head>

<div id="myDiv" style="width:100%;"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...