2017-05-23 1 views
1

を、Y軸は次のように定義される。ビジュアル参考Matplotlibの変数Y軸の特定のチックポイントに留まるようにグリッド線を設定するにはどうすればいいですか?時系列をプロットにおいて

yAxis = np.arange(minY, maxY, stepY) 
ax.set_ylim(minY, maxY) 
ax.set_yticks(yAxis) 

、dashline、添付チャートあたり0%「ベース」の行をハイライトするために添加されます。説明するために、このdashlineは、この質問に対して[7]で指定されている:時系列が進むにつれて

yGrid = ax.get_ygridlines() 
yBase = yGrid[7] 
yBase.set_linestyle('--') 

minYのとMAXY制限が継続的に更新されているとして、Y軸が変更されます。範囲(minY、maxY)が0% "Base"線に対して常に対称でないことを考慮して、特定の0%ティック点に常に滞在するようにダッシュラインを設定するにはどうすればよいですか?

ASX-IndexASX-20170519

答えて

1

もちろん、ゼログリッド線の上に追加の線を配置するのが最も簡単な方法です。これは、tomによって指摘されているax.axhline(0)を使用して行うことができます。

欠点は、axhlineの下のグリッド線がまだ存在することです。

実際の質問に答えるには:ゼロの位置にあるグリッド線を確認し、その線種を設定します。

import matplotlib.pyplot as plt 
import matplotlib.animation 
import numpy as np; np.random.seed(1) 

x = np.arange(0,99) 
y = np.cumsum(np.random.normal(loc=0.1, size=len(x))) 

fig, ax = plt.subplots() 

line, = ax.plot([],[], color="plum", lw=2) 
ax.grid(color="lightgray", lw=2) 

def update_gridline(pos): 
    yGrid = ax.get_ygridlines() 
    for i, gl in enumerate(yGrid): 
     y = gl.get_ydata() 
     if y[0]==pos: 
      gl.set_linestyle('--') 
      gl.set_color('crimson') 
     else: 
      gl.set_linestyle('-') 
      gl.set_color("lightgray") 

def update(i): 
    line.set_data(x[:i],y[:i]) 
    ax.relim() 
    ax.autoscale_view() 
    update_gridline(0) 


ani = matplotlib.animation.FuncAnimation(fig, update, frames=100, interval=100) 
plt.show() 

enter image description here

+0

Merci IOBEは今、アニメーションで真摯な反応に真摯に反応します!驚くばかり! – artDeco

1

ではなくグリッド線の1つを変更、あなただけ常に、あなたがそれを与えるyの位置にとどまるであろう、axhlineを使用して、その時点で別のラインをプロットできます。

ax.axhline(0, linestyle='--') 
+0

おかげで、迅速かつ直接的な解決のためのトム! – artDeco

関連する問題