@@ -408,31 +408,32 @@ def get_ph_dos_traces(dos: CompletePhononDos, freq_range: tuple[float, float]):
408408 dos_traces .append (trace_tdos )
409409
410410 # Projected DOS
411- colors = [
412- "#d62728" , # brick red
413- "#2ca02c" , # cooked asparagus green
414- "#17becf" , # blue-teal
415- "#bcbd22" , # curry yellow-green
416- "#9467bd" , # muted purple
417- "#8c564b" , # chestnut brown
418- "#e377c2" , # raspberry yogurt pink
419- ]
411+ if isinstance (dos , CompletePhononDos ):
412+ colors = [
413+ "#d62728" , # brick red
414+ "#2ca02c" , # cooked asparagus green
415+ "#17becf" , # blue-teal
416+ "#bcbd22" , # curry yellow-green
417+ "#9467bd" , # muted purple
418+ "#8c564b" , # chestnut brown
419+ "#e377c2" , # raspberry yogurt pink
420+ ]
420421
421- ele_dos = dos .get_element_dos () # project DOS onto elements
422- for count , label in enumerate (ele_dos ):
423- spin_up_label = str (label )
424-
425- trace = {
426- "x" : ele_dos [label ].densities [dos_min :dos_max ],
427- "y" : dos .frequencies [dos_min :dos_max ],
428- "mode" : "lines" ,
429- "name" : spin_up_label ,
430- "line" : dict (width = 2 , color = colors [count ]),
431- "xaxis" : "x2" ,
432- "yaxis" : "y2" ,
433- }
422+ ele_dos = dos .get_element_dos () # project DOS onto elements
423+ for count , label in enumerate (ele_dos ):
424+ spin_up_label = str (label )
425+
426+ trace = {
427+ "x" : ele_dos [label ].densities [dos_min :dos_max ],
428+ "y" : dos .frequencies [dos_min :dos_max ],
429+ "mode" : "lines" ,
430+ "name" : spin_up_label ,
431+ "line" : dict (width = 2 , color = colors [count ]),
432+ "xaxis" : "x2" ,
433+ "yaxis" : "y2" ,
434+ }
434435
435- dos_traces .append (trace )
436+ dos_traces .append (trace )
436437
437438 return dos_traces
438439
@@ -473,14 +474,17 @@ def get_figure(
473474
474475 # TODO: add logic to handle if bs_traces and/or dos_traces not present
475476
476- rmax = max (
477- [
478- max (dos_traces [0 ]["x" ]),
479- abs (min (dos_traces [0 ]["x" ])),
477+ rmax_list = [
478+ max (dos_traces [0 ]["x" ]),
479+ abs (min (dos_traces [0 ]["x" ])),
480+ ]
481+ if len (dos_traces ) > 1 and "x" in dos_traces [1 ] and dos_traces [1 ]["x" ]:
482+ rmax_list += [
480483 max (dos_traces [1 ]["x" ]),
481484 abs (min (dos_traces [1 ]["x" ])),
482485 ]
483- )
486+
487+ rmax = max (rmax_list )
484488
485489 # -- Add trace data to plots
486490
0 commit comments