Привет Я пытаюсь собрать некоторые функции для выполнения общих задач с помощью объектно-ориентированной командной строки Veusz (https://github.com/jeremysanders/veusz/wiki/EmbeddingPython). VszPlot (x, y) должен создать начальный график во встроенном окне списков x по y. Затем я хочу иметь вторую функцию AddPlot (x, y), которая добавит новые данные в один и тот же встроенный график. VszPlot выглядит следующим образом:функции python объект veusz
def VszPlot(xval,yval):
#Create a default veusz graph. Visualise with option to save
import veusz.embed as veusz
# construct a Veusz embedded window
# many of these can be opened at any time
handle = veusz.Embedded('Graph')
# construct the plot by adding widgets
page = handle.Root.Add('page')
graph = page.Add('graph')
xy1 = graph.Add('xy',xData = xval, yData = yval)
xy1.MarkerFill.color.val = 'red'
return handle
def AddPlot(handle,xval,yval):
# try and do something to handle
handle.EnableToolbar()
Это работает, но
def AddPlot(handle,xval,yval):
#try and do something to some property of an attribute. eg change colour of markers
handle.graph.xy1.MarkerFill.color.val = 'blue'
, который будет работать, если применяется внутри VszPlot возвращает эту ошибку:
AttributeError: 'Embedded' объект не имеет атрибута 'графа'
Где мой атрибут графика ушел?
спасибо, это здорово. – MikeS