如何在绘图中离线绘制垂直线?

时间:2017-10-19 22:04:39

标签: python-3.x plotly

如何使用python在绘图中离线绘制垂直线?我想在x = 20,x = 40和x = 60处添加线,所有这些都在同一个图中。

def graph_contracts(self):
    trace1 = go.Scatter(
        x=np.array(range(len(all_prices))),
        y=np.array(all_prices), mode='markers', marker=dict(size=10, color='rgba(152, 0, 0, .8)'))
    data = [trace1]
    layout = go.Layout(title='Market Contracts by Period',
                       xaxis=dict(title='Contract #',
                                  titlefont=dict(family='Courier New, monospace', size=18, color='#7f7f7f')),
                       yaxis=dict(title='Prices ($)',
                                  titlefont=dict(family='Courier New, monospace', size=18, color='#7f7f7f')))
    fig = go.Figure(data=data, layout=layout)
    py.offline.plot(fig)

Generated graph

4 个答案:

答案 0 :(得分:7)

您可以在import plotly plotly.offline.init_notebook_mode() import random x=[i for i in range(100)] trace = plotly.graph_objs.Scatter(x=x, y=[random.random() for _ in x], mode='markers') shapes = list() for i in (20, 40, 60): shapes.append({'type': 'line', 'xref': 'x', 'yref': 'y', 'x0': i, 'y0': 0, 'x1': i, 'y1': 1}) layout = plotly.graph_objs.Layout(shapes=shapes) fig = plotly.graph_objs.Figure(data=[trace], layout=layout) plotly.offline.plot(fig) 中通过constructor添加from wordpress_xmlrpc import Client, WordPressPost from wordpress_xmlrpc.methods.posts import GetPosts, NewPost from wordpress_xmlrpc.methods.users import GetUserInfo from xmlrpc.client import Transport class SpecialTransport(Transport): user_agent = 'Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31' wp = Client('http://mysite.wordpress.com/xmlrpc.php', 'username', 'password', transport=SpecialTransport) post = WordPressPost() post.title = 'My new title' post.content = 'This is the body of my new post.' wp.call(NewPost(post)) ,例如

wp = Client('http://mysite.wordpress.com/xmlrpc.php', 'username', 'password')

会给你

shape

答案 1 :(得分:5)

垂直线和水平线的功能通过 Plotly.py 4.12(11/20 发布)实现。它适用于 plotly express 和 graph 对象。请参阅此处:https://community.plotly.com/t/announcing-plotly-py-4-12-horizontal-and-vertical-lines-and-rectangles/46783

简单例子:

import plotly.express as px

df = px.data.stocks(indexed=True)
fig = px.line(df)
fig.add_vline(x='2018-09-24')
fig.show()

答案 2 :(得分:2)

这是我的示例。最重要的说明是这个。

fig.add_trace(go.Scatter(x=[12, 12], y=[-300,300], mode="lines", name="SIGNAL"))

最重要的属性是MODE ='LINES'。 其实这个例子是关于x = 12

的一段

示例

import pandas as pd
import plotly.graph_objects as go
import matplotlib.pyplot as plt
import numpy as np
import plotly.tools as tls




df1 = pd.read_csv('./jnjw_f8.csv')



layout = go.Layout(
xaxis = go.layout.XAxis(
    tickmode = 'linear',
    tick0 = 1,
    dtick = 3
),
yaxis = go.layout.YAxis(
    tickmode = 'linear',
    tick0 = -100,
    dtick = 3
))

fig = go.Figure(layout = layout)

fig.add_trace(go.Scatter(x = df1['x'], y = 
df1['y1'],name='JNJW_sqrt'))
fig.add_trace(go.Scatter(x=[12, 12], y=[-300,300], 
mode="lines", name="SIGNAL"))


fig.show()

也看这里。 how to plot a vertical line with plotly

答案 3 :(得分:2)

fig.add_vline(x=2.5, line_width=3, line_dash="dash", line_color="green")