Вы можете использовать те же функции, что и раньше, но каждое целочисленное значение по оси X представляет одно значение в вашем категориальном списке.
var data = [
{
x: ["giraffes", "orangutans", "monkeys", "lions", "tigers"],
y: [20, 14, 23, 40, 13],
type: "bar"
}
];
var gd = document.getElementById("myDiv");
Plotly.newPlot(gd, data);
function showVisibleAnimals()
{
var outputDiv = document.getElementById("visibleAnimals");
outputDiv.innerHTML = "Visible Animals:<br />";
var xRange = gd.layout.xaxis.range;
if (xRange[0] < 0) {
xRange[0] = -1;
}
for (
var i = parseInt(xRange[0]) + 1;
i < parseInt(xRange[1]) + 1 && i < data[0].x.length;
i++
) {
outputDiv.innerHTML += data[0].x[i] + "<br />";
}
}
showVisibleAnimals();
gd.on("plotly_relayout", function() {
showVisibleAnimals();
});
<head>
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
</head>
<body>
<div id='visibleAnimals'></div>
<div id="myDiv"><!-- Plotly chart will be drawn inside this DIV --></div>
</body>