Draft: Support custom geometry for vtkChartParallelCoordinates.
Similar to the changes in !8618 (merged), support custom geometries for vtkChartParallelCoordinates
.
Script to reproduce below plots
import vtk
def create_parallel_chart():
data = [(1, 2, 3), (2, 0, 1), (3, 1, 2)]
chart = vtk.vtkChartParallelCoordinates()
table = vtk.vtkTable()
numFields = len(data)
for f in range(numFields):
arr = vtk.vtkFloatArray()
arr.SetName(f"Field{f}")
table.AddColumn(arr)
numPoints = len(data[0])
table.SetNumberOfRows(numPoints)
for f in range(numFields):
for p in range(numPoints):
table.SetValue(p, f, data[f][p])
plot = chart.GetPlot(0)
plot.SetInputData(table)
return chart
if __name__ == "__main__":
width, height = 400, 400
border = 50
renwin = vtk.vtkRenderWindow()
renwin.SetSize(width+2*border, height+2*border)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renwin)
renderer = vtk.vtkRenderer()
renderer.SetBackground([1, 1, 1])
renwin.AddRenderer(renderer)
chart_scene = vtk.vtkContextScene()
chart_actor = vtk.vtkContextActor()
chart_actor.SetScene(chart_scene)
renderer.AddActor(chart_actor)
chart_scene.SetRenderer(renderer)
chart = create_parallel_chart()
chart.SetAutoSize(False)
chart.SetSize(vtk.vtkRectf(border, border, width, height))
chart_scene.AddItem(chart)
style = vtk.vtkContextInteractorStyle()
style.SetScene(chart_scene)
iren.SetInteractorStyle(style)
renwin.Render()
iren.Start()
Before | After |
---|---|
Edited by dcbr