问题
Hi i am using plotly to generate graphs using Python, Bottle. However, this returns me a url. Like:
https://plot.ly/~abhishek.mitra.963/1
I want to paste the entire graph into my webpage instead of providing a link. Is this possible?
My code is:
import os
from bottle import run, template, get, post, request
from plotly import plotly
py = plotly(username='user', key='key')
@get('/plot')
def form():
return '''<h2>Graph via Plot.ly</h2>
<form method="POST" action="/plot">
Name: <input name="name1" type="text" />
Age: <input name="age1" type="text" /><br/>
Name: <input name="name2" type="text" />
Age: <input name="age2" type="text" /><br/>
Name: <input name="name3" type="text" />
Age: <input name="age3" type="text" /><br/>
<input type="submit" />
</form>'''
@post('/plot')
def submit():
name1 = request.forms.get('name1')
age1 = request.forms.get('age1')
name2 = request.forms.get('name2')
age2 = request.forms.get('age2')
name3 = request.forms.get('name3')
age3 = request.forms.get('age3')
x0 = [name1, name2, name3];
y0 = [age1, age2, age3];
data = {'x': x0, 'y': y0, 'type': 'bar'}
response = py.plot([data])
url = response['url']
filename = response['filename']
return ('''Congrats! View your chart here <a href="https://plot.ly/~abhishek.mitra.963/1">View Graph</a>!''')
if __name__ == '__main__':
port = int(os.environ.get('PORT', 8080))
run(host='0.0.0.0', port=port, debug=True)
回答1:
Yes, embedding is possible. Here's an iframe snippet you can use (with any Plotly URL):
<iframe width="800" height="600" frameborder="0" seamless="seamless" scrolling="no" src="https://plot.ly/~abhishek.mitra.963/1/.embed?width=800&height=600"></iframe>
The plot gets embedded at a URL that is made especially for embedding the plot. So in this case your plot is https://plot.ly/~abhishek.mitra.963/1/. The URL to embed it is made by adding .embed to the URL: https://plot.ly/~abhishek.mitra.963/1.embed.
You can change the width/height dimensions in that snippet. To get the iframe code and see different sizes, you can click the embed icon on a plot, or when you share it generate the code. Here's where the embed options are:

Here's how an embedded graph looks in the Washington Post. And here is a helpful tutorial someone made on developing with Plotly and Bottle.
Let me know if that doesn't work, and I'm happy to help out.
Disclosure: I'm on the Plotly team.
来源:https://stackoverflow.com/questions/19356920/embed-plotly-graph-into-a-webpage-with-bottle