2017-08-11 20 views
0

はplotlyにPythonのAPIを使用して散布図を描画するために、次のMWEを考えてみましょう:散布図に散布図に1行を追加するにはどうすればよいですか?

import plotly.plotly as py 
import plotly.graph_objs 
import plotly.offline 
plotly.offline.init_notebook_mode() 

data = list(range(10)) 
trace = plotly.graph_objs.Scatter(
    x=list(range(len(data))), 
    y=data 
) 
plotly.offline.iplot([trace]) 

enter image description here

私は今、このプロットに(例えば)水平線を追加したい場合はどう? 私は、例えばline and scatterのセクションとline chartsのセクションのようなドキュメントを調べましたが、異なるプロットをオーバーレイする方法や、まっすぐな直線や同様の図形を描く方法の例はありません。これを行うには

単純なアプローチは、単に次のように、第二散布図のような行を追加することです:

import plotly.plotly as py 
import plotly.graph_objs 
import plotly.offline 
plotly.offline.init_notebook_mode() 

data = list(range(10)) 
trace = plotly.graph_objs.Scatter(
    x=list(range(len(data))), 
    y=data 
) 
trace_line = plotly.graph_objs.Scatter(
    x=list(range(len(data))), 
    y=[4] * len(data), 
    mode='lines' 
) 
plotly.offline.iplot([trace, trace_line]) 

enter image description here

このアプローチは、しかし、次善のようだ:脇冗長性のために1行追加するのに必要な直線を手動で「サンプル」し、マウスのホバー上のツールチップに行の高さを追加します。

これを達成するためのより良いアプローチがありますか?

+1

あなただけのすべての同じ値を持つ別のデータセットを追加し、そのプロットできませんでしたか? – Jeeter

+0

@喜んで、私の編集を見ることができます。私はそれより良いアプローチを望んでいました。たとえば、 'cufflinks' +' pandas'を使うと、これを達成するために 'hpl'と' vline'オプションを 'iplot'に追加することができます(' In [43] '[here](https://plot.ly/ipython-notebooks /カフリンクス/))。 'plotly'だけを使用すると、同等の方法はありませんか? – glS

+0

私は実際に陽気で多くの経験を持っていないので、私は知らない。あなたの答えを見つけることを願って! – Jeeter

答えて

1

こんにちは、私はあなたがプロットする機能をプロットし、プロットの水平線を生成する必要があることがわかります。

from plotly.offline import iplot 
import plotly.graph_objs as go 


data = list(range(10)) 
trace = go.Scatter(
    x=list(range(len(data))), 
    y=data 
) 
layout = { 
    'shapes': [ 
     # Line Horizontal 
     { 
      'type': 'line', 
      'x0': 0, 
      'y0': 4, 
      'x1': 10, 
      'y1': 4, 
      'line': { 
       'color': 'rgb(50, 171, 96)', 
       'width': 4 
      }, 
     } 
    ], 
    'showlegend': True 
} 

fig = fig = { 
    'data': [trace], 
    'layout': layout, 
} 


iplot(fig) 

出力:

plotly shapes

追加

あなたは

コード疑問に示したのと同じグラフを行うためのコードの下に見つけてくださいレフェリーNCE:

  1. plotly shapes examples

  2. plotly shapes reference

+0

私が探していたもの、感謝!ところで、なぜあなたは 'cufflinks'、' plotly.tools'と 'download_plotlyjs'をこのためにインポートする必要がありますか? – glS

+0

@glS私は自分のコードを編集しました。それらは別のセルからコピーしたものです。更新されたコードを参照してください。 –