Text and Multi-Line Labels
Text Labels and Multi-Line can be achieved in SciChart.js using the TextLabelProvider type.
For more info, see the Text / String Axis article under Axis Types.
<div id="scichart-root" ></div>
body { margin: 0; }
#scichart-root { width: 100%; height: 100vh; }
async function rotatingLabels(divElementId) {
// Demonstrates how to configure a text axis in SciChart.js
// using TextLabelProvider & NumericAxis
const {
SciChartSurface,
NumericAxis,
SciChartJsNavyTheme,
TextLabelProvider,
FastColumnRenderableSeries,
XyDataSeries,
GradientParams,
Point,
ELabelAlignment
} = SciChart;
// or, for npm, import { SciChartSurface, ... } from "scichart"
const { wasmContext, sciChartSurface } = await SciChartSurface.create(divElementId, {
theme: new SciChartJsNavyTheme()
});
// #region ExampleA
// Create an XAxis with 90-degree rotated labels
const xAxis = new NumericAxis(wasmContext, {
labelProvider: new TextLabelProvider( {
// When passed as an object, x values will be mapped to fields
labels: [
// Provide multiple lines directly
["Apples","and Bananas"],
["Strawberries","and Raspberries"],
["Lemons, Limes", "and Oranges"],
// These will be auto-wrapped
"Apples and Bananas",
"Strawberries and Raspberries",
"Lemons Limes and Oranges",
],
maxLength: 7
}),
labelStyle: {
alignment: ELabelAlignment.Center
}
});
sciChartSurface.xAxes.add(xAxis);
// #endregion
// Create a YAxis
sciChartSurface.yAxes.add(new NumericAxis(wasmContext));
// Create a column chart with the data. Labels are mapped to sequential X-values
sciChartSurface.renderableSeries.add(new FastColumnRenderableSeries(wasmContext, {
dataSeries: new XyDataSeries(wasmContext, {
xValues: [0,1,2,3,4,5],
yValues: [0.1, 0.2, 0.4, 0.8, 1.1, 1.2],
}),
fillLinearGradient: new GradientParams(new Point(0, 0), new Point(0, 1), [
{ color: "rgba(70,130,180,0.77)", offset: 0 },
{ color: "rgba(70,130,180,0.0)", offset: 1 },
]),
stroke: "#FFFFFF77",
strokeThickness: 2,
}));
};
rotatingLabels("scichart-root");
async function builderExample(divElementId) {
// Demonstrates how to configure a text axis in SciChart.js using the Builder API
const {
chartBuilder,
ESeriesType,
EThemeProviderType,
ELabelProviderType,
EAxisType
} = SciChart;
// or, for npm, import { chartBuilder, ... } from "scichart"
// #region ExampleB
const { wasmContext, sciChartSurface } = await chartBuilder.build2DChart(divElementId, {
surface: { theme: { type: EThemeProviderType.Dark } },
xAxes: {
type: EAxisType.NumericAxis,
options: {
labelProvider: {
type: ELabelProviderType.Text,
options: {
labels: [
// Provide multiple lines directly
["Apples","and Bananas"],
["Strawberries","and Raspberries"],
["Lemons, Limes", "and Oranges"],
// These will be auto-wrapped
"Apples and Bananas",
"Strawberries and Raspberries",
"Lemons Limes and Oranges",
],
maxLength: 7
}
}
}
},
// ... );
// #endregion
yAxes: {
type: EAxisType.NumericAxis,
options: { }
},
series: [
{
type: ESeriesType.ColumnSeries,
xyData: {
xValues: [0,1,2,3,4,5],
yValues: [0.1, 0.2, 0.4, 0.8, 1.1, 1.2],
},
options: {
fillLinearGradient: {
gradientStops: [{ color:"rgba(70,130,180,0.77)",offset:0.0 },{ color: "rgba(70,130,180,0.0)", offset:1 }],
startPoint: { x:0, y:0 },
endPoint: { x:0, y:1 }
},
stroke: "#FFFFFF77",
strokeThickness: 2,
}
}
]
});
};
// Uncomment this to use the builder example
//builderExample("scichart-root");
Above: The multi-line text labels example taken from Text / String Axis article