Предположим, что у меня есть визуализация, которая решена панелью с помощью некоторой категориальной переменной, с одной панелью на странице. Я хотел бы перебрать панели и экспортировать каждое изображение в файл с именем файла, соответствующим категориальной переменной.
Экспорт изображений работает полностью, следуя некоторым опубликованным примерам. Тем не менее, у меня много проблем с получением имени текущей панели, чтобы я мог правильно назвать изображение.
Здесь мой код:
from Spotfire.Dxp.Application.Visuals import VisualContent
from System.Drawing import Bitmap, Graphics, Rectangle, Point
from System.IO import Path
import re
vc=viz.As[VisualContent]() #viz is the visualization parameter passed to the script
trellis=vc.Trellis
originalIndex=trellis.ActivePageIndex
outputDir=Document.Properties["imageOutputDir"]
for i in range(trellis.PageCount):
#move to the right page
trellis.ActivePageIndex=i
#make the actual image -
viz_r = Document.ActivePageReference.GetVisualBounds(viz)
width=viz_r.Width
height=viz_r.Height
bm = Bitmap(width,height)
g = Graphics.FromImage(bm)
g.TextRenderingHint = g.TextRenderingHint.AntiAlias
r=Rectangle(0, 0, width,height)
vc.Render(g, r)
#save the image
name="%d"%i
#here we would like to instead get the current value of the trellis variable!
#name=?
clean_name=re.sub(r'[/\\:*?"<>|]', '_',name)
tempFilename = outputDir+"\\%s.png"%clean_name
bm.Save(tempFilename)
print "image saved as " + tempFilename
trellis.ActivePageIndex=originalIndex
Я, казалось бы, просмотрел все методы VisualContent
и Trellis
и не нашел его.
Альтернативой является цикл данных и просто получить значения категориальной переменной. Однако порядок не обязательно сохраняется, поэтому это не работает. Если я могу получить только данные, соответствующие каждой панели решетки, конечно, я мог бы с этим справиться.