我必须创建一个简单的报表,显示一个数据表,并在上角有两个标志。下面的代码在以前的项目中工作,但现在我在新的计算机上重新使用它,在一个新的项目中,它不会显示标志。
我没有得到任何错误信息。相同版本的 plotly 和 python "plotly==4.6.0" "Python 3.6.1" 。
请注意,唯一改变的是在datatable中显示的数据。
import plotly.graph_objects as go
import pandas as pd
traces = go.Table(
header=dict(values=list(df.columns),
align='left'),
cells=dict(
values=df.T.values.tolist(),
align='left'))
layout = go.Layout(
title='Report <br> {}'.format( report_date),
title_x=0.5,
paper_bgcolor='#FFFFFF',
margin = {'t':100, 'b':40, 'r':40, 'l':40}
,images=[
dict(
source='assets\\MiniLogo.png',
xref='paper',yref='paper',
x=1,y=1.05,
sizex=0.2, sizey=0.2,
xanchor="right", yanchor="bottom"),
dict(
source='assets\\Titlelogo.png',
xref='paper',yref='paper',
x=0,y=1.05,
sizex=0.2, sizey=0.2,
xanchor="left", yanchor="bottom")
]
)
fig = go.Figure(
data=traces
,layout=layout)
fig.show()
我认为问题出在 source
在你 layout
. 我已经用你的代码与 该图片的URL 而不是相对路径,而且工作得很完美,下面是一个截图,知道我用一个简单的表作为我的 df
:
在我看来,你有两个选择来克服这个问题。
把这些图片上传到云服务上,然后用它们的网址来代替。
或者根据这个 Plolty社区主题,您可以使用 Pillow.Image
类来读取本地机器上的图像。你可以通过运行 pip install pillow
并将你的代码修改成这样。
from PIL import Image
layout= go.Layout(images= [dict(
source= Image.open('assets\\MiniLogo.png'),
...)])