chart = {
const chart = new G2.Chart({
width,
height: 800
});
const xy = (node) => node.encode("x", "letter").encode("y", "frequency");
chart.coordinate({ type: "transpose" }).data(alphabet);
chart
.interval()
.transform({ type: "sortBy", fields: ["frequency"], order: "DES" })
.scale("y", { guide: { position: "top", formatter: d3.format(".0%") } })
.call(xy)
.encode("color", "steelblue");
chart
.text()
.call(xy)
.encode("text", (d) =>
d.frequency > 0.005 ? d3.format(".1%")(d.frequency) : ""
)
.encode("color", (d) => (d.frequency > 0.005 ? "white" : "black"))
.scale("color", { type: "identity", independent: true })
.style("textAnchor", "end")
.style("textBaseline", "middle")
.style("fontSize", 12)
.style("dx", -5);
return node(chart.render());
}