Doing this with only true UI elements might be possible, but it would be many, many orders of magnitude simpler to use a mesh-based approach.
You can still place this group-of-objects in alignment with your canvas and render it with the same camera that renders your UI, and use whatever kind of shader you find suitable. It may be a bit tricky to find the best way to position and align the group, depending upon your needs, but I would still recommend this approach over any alternative.
Have a good long look at the Mesh class API. Also investigate the DrawMeshNow method, which is a very convenient way to draw procedural meshes which change (or might change) every frame. This may or may not be the best way; depends on what you need.
Building a “line” mesh from code is a matter of selecting the start and end points (length), using the cross-product of that vector to get your perpendicular vectors (width), then creating verts whose positions can be established based on these values.
It would be even more efficient and nice-looking to build actual polygon shapes instead of individual line quads; if you can do one, you can do the other. Just gotta get familiar with the Mesh class and building procedural meshes.
Note that this might be overkill. It sounds a bit expensive, too. Consider whether the spiderweb aspect can be a rastar image instead. You could have as many images as the maximum number of data points these graphs will ever display.
Drawing the graph polygon itself follows a very similar process; select the positions for the points, and create triangles which “fills the shapes” defined by these points. The easiest way would involve triangles which each contain two verts on the data graph, and the third vert is the center of the shape.
For both aspects of the task, you’ll be constructing these meshes based on N pieces of data, where N is greater than two. Conveniently, you can just “sweep” a circle shape to establish each “spoke” in the shape. If N is 4, each spoke is swept at 90 degree intervals. If N is 5, each interval is 72 degrees, etc.
The vertex of the graph polygon on each spoke then lies along that spoke, at a position defined by whatever percent of the maximum value that spoke is representing that frame.
I thought a lot about doing such a graph in my current project, but ultimately ditched the idea in favor of another data presentation. I always thought it would be really cool though.
I’d be happy to talk more about this idea if this information isn’t sufficient to get you going.