def auto_bind_origin(self, expression, mark): type = md.typeof(expression) index = self.create_axis(type) if index is not None: mark["position"][index].bind(expression) self.binding_changed(mark)
def auto_bind_mark(self, expression, mark): type = md.typeof(expression) if md.is_color_type(type): self.bind_color(mark, expression) return if md.is_shape_type(type): self.bind_shape(mark, expression) return if md.is_categorical(type) or md.is_numerical(type): self.bind_color(mark, expression) else: self.bind_label(mark, expression)
def auto_bind(self, expression, mark): type = expressions.typeof(expression) position = as_position(expression) size = expressions.typeof(position).size for i in range(size): item = position[i] type = md.typeof(item) index = self.create_axis(type) if index is not None: mark["position"][index].bind(item) self.binding_changed(mark)