如何将Bokeh favicon更改为另一个图像

2024-05-13 22:03:46 发布

您现在位置:Python中文网/ 问答频道 /正文

Bokeh地块包括大多数地块右上方的Bokeh favicon。可以用另一个图标替换这个图标吗?如果是,怎么办?在


Tags: bokeh图标favicon地块
2条回答

对于Bokeh0.12.4,只能直接从python库中删除它,而不是更改它。这可以通过在plot.toolbar上设置属性logo=None来完成。在

您可以编辑输出html文件以包含logo类的css覆盖。。。请参阅this答案,了解如何确保标记的优先级高于内置标记。相关类别包括:

  • .bk-logo-small
  • .bk-logo-medium
  • .bk-logo-large

您需要特别重写background-image属性。在

如果您想从python脚本中完成这一切,可以使用^{}来解析html并添加如下新元素。。在

#example script from Bokeh quickstart
from bokeh.plotting import figure, output_file, show
output_file("test.html")
p = figure()
p.line([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], line_width=2)
show(p)



import bs4

#load our html and parse with bs4
with open('test.html') as f:
    soup = bs4.BeautifulSoup(f.read())

#create style override tag
style = soup.new_tag('style')
soup.head.append(style)

#adds base64 gear icon. note pixel dimensions can be changed too

# the !important; tag is at the end of the image data to make *sure* the
# override takes priority even though order should dictate that as well:
# background-image: url(...base64 data...) !important;}
style.string = '''
.bk-logo-small{
    width: 20px;
    height: 20px;
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAABp0lEQVQ4T53VzYuOYRTH8c8oU+Q9K2XhT2BHUpSXBVIWbFghlJRMSVFKKREbWWBBKcrSaymSmWYl/4O8pGFhZhZs6Kfrrnsu9zPzPK7dc865vvc553eu8wyZ+2zCS/zGZozNdmVobp4zuFTiTuNqv8DAz+EbbpRLS/EM68vvN9iFH0j8CSzBxeYj7QzP40JxpMTP2IuFVUbTeITV2FJ8Z5sq2sDjrcz66MSMkCO4FUvdwxfYNiDtCXZ2lRzbPRwYEHgHh7qAy/ERCyrgV9wvtnxsZeWfwipMNiVnzjZgd0vN5k5ga/GpGCLEe6yooKN4jLfp4S/M71HmNZyqfBmpCNh1pgP8ieEBgDdxtEf8VIApN4O7BxurwAmsw4diX4N3WFbFvULUHm2PTYIiSj3I3/EA87C/AxYxIkrE+WcO7+LggGNzG4e7xibZ5sk1z6lfbh7Dji7gSVzvl1LFRfWINaPkrKisqpw0+Av2YVF1OT17WJbD9uIbwZUamKYny6ymPKecxXjaUv91WV9/BcCxEnO5q+Re1f73gu0FzGw+L38BWzE+W5//ALtcTHD+P5AeAAAAAElFTkSuQmCC) !important;}
.bk-logo-medium{
    width: 32px;
    height: 32px;
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAC30lEQVRYR7XXS+gVZRgG8J+LCkMqQRC6UZHRKuxKVtCFRGghJUFQkBRFbZQKKhHaREFXtFpEQlKLMoIUaWFQZBRakJI7hUiqhUtNy0qKiAe++TP/YebMmcP47c587+U57/u8l2+B2c5Z+AI3F/WvsRL/DDW3YKhCkb8Jexq6N+D7ofZmBbAW7zWcPYAPxwKwBMvwbYfBN7C+cfcqnumQT6oO4mjzvi0Cl2M3LsQOPIzfiuJ5eBQv4MyGsVPYiHdxvNwtLpFajV9wG36u6zUB5J//UJxXclGI0ctwH87uCfOf+Kg4egQX1+R/xXIcq741Adw4IexD09slfx32dwHI9+24ZyxvDTsflyjOfW7jQPKcNFwyMogfcS1+n8SB6i5kenFkAKmQVMq809UHtuKhkQFswWPTAEgKjmDhyAD+wAU40ZeCp/FKj/ND2IAv8R/uKDpX9ug9ic1NABksIUc63zV4vKXJ1HXiPOVaNZvq7lx8h0kg0qzeLiQPKfeHA9/glgHhvhs7O+TT8bru2lR2B0BCOGQondMspZrlRRPu2gCcmgVAnJzsiMBMAL7CrQNSkDB/2iGf9GSATXs+TwTOKAMiJLwa6xBidp0uEmbyhYRXTND9G2/iAELCA225fwqvT1GGz5YyjOideLnHeeSyQ7zV1wdSTmlEfWN32jBXcmlE5087CzL/s4iMed4pPWaeza7yew7Pj+kd6bCvNW22AQiZQpL6JjMGlp9Kp+2dBelkKbXTcT7BvZNIuAqfnQ7PNZvXY1/1u5mCi8rjYmlNIaELgbIt3490u0knbP8AhwvpLq0JZ8HNUjo3yNo4cBV2lZLJDpc1vMpb5kCq46WWZvUX0hvyYKnWrpR0lps1ZUu+vW8tr8CmOyYa+RdtZxOeaFykEWVHaDsJezpf9b6YkxkyBeuGH8T7DU9Jz7ah/JkVwArsbTibR65pgcwKIM+yVEteyTl5nt+Ff6d1XMn9DzFagpNrdq8hAAAAAElFTkSuQmCC) !important;}
.bk-logo-large{
    width: 64px;
    height: 64px;
    background-image: url(data:image/png;base64,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)!important;}
'''

#save our edits
with open("test.html", "w") as f:
    f.write(str(soup))

相关问题 更多 >