是否有可能在Tkinter GUI上显示绘图图表?我一直试图使这种情况发生,但无济于事。
这里是我的代码(Plotly代码是从Plotly网站复制的:]
from tkinter import *
import plotly.plotly as py
import plotly.graph_objs as go
from datetime import datetime
import pandas.io.data as web
mGui = Tk()
mGui.geometry('651x700+51+51')
mGui.title('Plotly at Tkinter')
df = web.DataReader("AAPL", 'yahoo',
datetime(2007, 10, 1),
datetime(2016, 7, 11))
trace = go.Scatter(x=df.index,
y=df.High)
data = [trace]
layout = dict(
title='Time series with range slider and selectors',
xaxis=dict(
rangeselector=dict(
buttons=list([
dict(count=1,
label='1m',
step='month',
stepmode='backward'),
dict(count=6,
label='6m',
step='month',
stepmode='backward'),
dict(count=1,
label='YTD',
step='year',
stepmode='todate'),
dict(count=1,
label='1y',
step='year',
stepmode='backward'),
dict(step='all')
])
),
rangeslider=dict(),
type='date'
)
)
fig = dict(data=data, layout=layout)
py.iplot(fig)
mGui.mainloop()
先谢谢您。
根据:https://plotly.com/python/renderers/可用的绘图绘制器为:
['plotly_mimetype', 'jupyterlab', 'nteract', 'vscode',
'notebook', 'notebook_connected', 'kaggle', 'azure', 'colab',
'cocalc', 'databricks', 'json', 'png', 'jpeg', 'jpg', 'svg',
'pdf', 'browser', 'firefox', 'chrome', 'chromium', 'iframe',
'iframe_connected', 'sphinx_gallery']
这意味着不可能让tkinter直接处理绘图用户交互事件。因此,最接近您想要的内容将是生成非交互式的绘图渲染(例如png / jpg),并将其显示在tkinter画布中。至少画布允许平移/扫描和缩放。另一个选择是从tkinter应用程序打开Web浏览器,但这意味着用户将不会直接与原始tkinter应用程序进行交互。