Pretty simple and basic d3 code, with the usual d3 select, data, join, attributes routine.
If you're only doing one, then this isn't bad. If you're [doing many](), and then want more control over them, then a reusable library helps.
Purpose-built for displays of data
Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.