63
63
print ("pandas not installed" )
64
64
65
65
try :
66
+ from IPython .display import HTML
66
67
from IPython .display import display
67
68
except ImportError :
68
69
pass
@@ -939,27 +940,27 @@ def get_full_parameter_name(self, unique_name: str, display_name: str, url: str)
939
940
return f'{ parent_name } .{ display_name } '
940
941
941
942
def _parameters (self ):
942
- parameters = {'name' : [], 'value' : [], 'error ' : [], 'unit ' : [], 'min' : [], 'max' : [], 'vary' : []}
943
+ parameters = {'name' : [], 'value' : [], 'unit ' : [], 'error ' : [], 'min' : [], 'max' : [], 'vary' : []}
943
944
for parameter in self .get_parameters ():
944
945
if parameter .enabled :
945
946
name = self .get_full_parameter_name (parameter .unique_name , parameter .display_name , parameter .url )
946
- parameters ['name' ].append (name )
947
+ parameters ['name' ].append (f'< name> { name } </name>' )
947
948
parameters ['value' ].append (parameter .raw_value )
949
+ parameters ['unit' ].append (f'<unit>{ parameter .unit :~P} </unit>' )
948
950
parameters ['error' ].append (parameter .error ) if parameter .error else parameters ['error' ].append ('' )
949
- parameters ['unit' ].append (f'{ parameter .unit :~P} ' )
950
951
parameters ['min' ].append (parameter .min )
951
952
parameters ['max' ].append (parameter .max )
952
953
parameters ['vary' ].append (parameter .free ) if parameter .free else parameters ['vary' ].append ('' )
953
954
return parameters
954
955
955
956
def _free_parameters (self ):
956
- parameters = {'name' : [], 'value' : [], 'error ' : [], 'unit ' : []}
957
+ parameters = {'name' : [], 'value' : [], 'unit ' : [], 'error ' : []}
957
958
for parameter in self .get_fit_parameters ():
958
959
name = self .get_full_parameter_name (parameter .unique_name , parameter .display_name , parameter .url )
959
- parameters ['name' ].append (name )
960
+ parameters ['name' ].append (f'< name> { name } </name>' )
960
961
parameters ['value' ].append (parameter .raw_value )
962
+ parameters ['unit' ].append (f'<unit>{ parameter .unit :~P} </unit>' )
961
963
parameters ['error' ].append (parameter .error )
962
- parameters ['unit' ].append (f'{ parameter .unit :~P} ' )
963
964
return parameters
964
965
965
966
def _show_parameters (self , parameters ):
@@ -970,11 +971,19 @@ def _show_parameters(self, parameters):
970
971
df = pd .DataFrame (parameters )
971
972
df .index += 1
972
973
if self .is_notebook ():
973
- display (df .
974
- style . # apply styles from below
975
- set_table_styles ([dict (selector = 'th' , props = [('text-align' , 'left' )])]). # align header to left
976
- set_properties (subset = ['name' ], ** {'text-align' : 'left' }). # align column 'name' to left
977
- format (precision = 5 )) # set precision
974
+ # convert the DataFrame to HTML
975
+ html = df .to_html (escape = False )
976
+ # align the header of the column 'name' to the left
977
+ html = html .replace ('<th>name' , '<th style="text-align: left;">name' )
978
+ # remove the header of the column 'unit'
979
+ html = html .replace ('<th>unit' , '<th>' )
980
+ # align the cells in the column 'name' to the left
981
+ html = html .replace ('<td><name>' , '<td style="text-align: left;">' )
982
+ html = html .replace ('</name></td>' , '</td>' )
983
+ # align the cells in the column 'unit' to the left and remove the left padding
984
+ html = html .replace ('<td><unit>' , '<td style="text-align: left; padding-left: 0px">' )
985
+ html = html .replace ('</unit></td>' , '</td>' )
986
+ display (HTML (html ))
978
987
else :
979
988
print (df )
980
989
else :
0 commit comments