我正在为一个复杂的图形构建自己的图例,其中一些线条具有十六进制颜色(例如#009933
)。为了构建图例,我有一列'color'
与图中的线具有相同的十六进制颜色。我使用 pandas 应用函数将颜色应用到颜色单元格的背景,如下所示。
import pandas as pd
def legend_styling(val):
if val.name == 'color':
return ['background-color: %s'%x for x in val]
elif val.name == 'shift':
return ['font-weight: bold' for x in val]
df = pd.DataFrame({
'form': {1: 'C4H6O5', 2: 'C4H6O5', 3: 'C4H4O4', 4: 'C4H5N3O'},
'name': {1: 'Malate', 2: '3-Dehydro-L-threonate', 3: 'Fumarate', 4: 'Cytosine'},
'color': {1: '#009933', 2: '#009933', 3: '#e67300', 4: '#e63900'},
'shift': {1: 'm+0', 2: 'm+0', 3: 'm+0', 4: 'm+0'}
})
df.style.apply(legend_styling, axis=0,subset=['color','shift'])
我想将'color'
列中的文本(黑色十六进制代码)着色为与背景相同,以便它们融合在一起。我不知何故需要将以下两个 CSS 样式选项应用于单元格'background-color: #xxxxxx'
和'color: #xxxxxx'
. 有没有办法做到这一点?