@@ -506,7 +506,7 @@ def __init__(
506506 """
507507 super (Axis , self ).__init__ (sid = None , name = None )
508508 if label and name :
509- ValueError ("Either set label or name on Axis." )
509+ raise ValueError ("Either set label or name on Axis." )
510510 # if unit is None:
511511 # unit = "?"
512512 if not name :
@@ -517,9 +517,11 @@ def __init__(
517517 else :
518518 name = f"{ label } [-]"
519519
520- self .label : str = label
521- self .name : str = name
522- self .unit : str = unit
520+ self ._label = label
521+ self ._unit = unit
522+ self ._auto_name = name is None
523+ self ._name = name
524+ self ._update_name ()
523525 self .scale : AxisScale = scale
524526 self .min : float = min
525527 self .max : float = max
@@ -528,6 +530,46 @@ def __init__(
528530 self .label_visible : bool = label_visible
529531 self .ticks_visible : bool = ticks_visible
530532 self .style = style
533+
534+ def _update_name (self ):
535+ if not self ._auto_name :
536+ return
537+
538+ if not self ._label and not self ._unit :
539+ self ._name = ""
540+ elif self ._unit != "dimensionless" :
541+ self ._name = f"{ self ._label } [{ self ._unit } ]"
542+ else :
543+ self ._name = f"{ self ._label } [-]"
544+
545+ @property
546+ def label (self ) -> str :
547+ return self ._label
548+
549+ @label .setter
550+ def label (self , value : str ) -> None :
551+ self ._label = value
552+ self ._update_name ()
553+
554+ @property
555+ def unit (self ) -> str :
556+ return self ._unit
557+
558+ @unit .setter
559+ def unit (self , value : str ) -> None :
560+ self ._unit = value
561+ self ._update_name ()
562+
563+ @property
564+ def name (self ) -> str :
565+ return self ._name
566+
567+ @name .setter
568+ def name (self , value : str ) -> None :
569+ self ._name = value
570+ self ._auto_name = value is None
571+ if self ._auto_name :
572+ self ._update_name ()
531573
532574 def __repr__ (self ) -> str :
533575 """Get string."""
@@ -1478,3 +1520,5 @@ def to_dict(self):
14781520 "subplots" : self .subplots ,
14791521 }
14801522 return d
1523+
1524+
0 commit comments