<p>要保留悬停背景,<strong>和</strong>读取所有条目的能力-<em>,例如,您不必费劲读取彩色样本上的白色文本</em></p>
<pre><code>#! /usr/bin/python3
## pip3 install numpy pandas plotly
import plotly.express as px
fig = px .colors .qualitative .swatches()
for item in fig['data']:
## print( type(item), '\n', item, '\n' )
font_colors = []
for data_entry in range( len( item['customdata'] ) ):
colorstring = item['marker']['color'][data_entry]
if colorstring .startswith('#'):
## print( colorstring ) ## #336699
rr = int( colorstring[1:3], 16 ) ## 0x33
gg = int( colorstring[3:5], 16 ) ## 0x66
bb = int( colorstring[5:], 16 ) ## 0x99
else:
## print( colorstring[4:-1] ) ## rgb(33, 66, 99)
rrggbb = colorstring[4:-1] .replace(' ', '' ) .split(',')
rr = int( rrggbb[0] ) ## 33
gg = int( rrggbb[1] ) ## 66
bb = int( rrggbb[2] ) ## 99
## stackoverflow.com/questions/596216/formula-to-determine-perceived-brightness-of-rgb-color
if rr+rr+rr +gg+gg+gg+gg +bb > 255 *3: ## increase contrast
rr, gg, bb = 0, 0, 0
else:
rr, gg, bb = 255, 255, 255
hovercolor = f"rgb( {rr}, {gg}, {bb} )"
font_colors .append( hovercolor )
item['hoverlabel'] = dict( font_color=font_colors )
fig.show()
</code></pre>
<p><a href="https://plotly.com/python/hover-text-and-formatting/" rel="nofollow noreferrer">https://plotly.com/python/hover-text-and-formatting/</a><br/>
<a href="https://plotly.com/python/creating-and-updating-figures/" rel="nofollow noreferrer">https://plotly.com/python/creating-and-updating-figures/</a></p>