2017-04-22 27 views
0

私は(matplotlib.pyplot pltとして)matplotlibを使用して棒グラフを描画しています。その棒グラフでは、灰色のaxhline()関数を使って水平線を描いています。私は、その水平線が始まる場所からのポイント(y軸上の値= 42000)も42000という値を表示したいと思っています。何をすべきか?下の画像をy軸の値を表示する水平線を描く棒グラフ

enter image description here

、 '39541.52' のポイントを参照してください。

これは私の現在のイメージですか?私は私のイメージと私のポイント値に正確にそのように表示したい

enter image description here

+0

私は、私がすでに提供していると思う[この回答](http://stackoverflow.com/questions/42876219/point-picker-event-ハンドラ描画ラインと表示座標のmatplotlib)と[この回答](http://stackoverflow.com/questions/43133017/how-to-change-colors-automatically-once-a-parameter-変更されています)。あなたのコードを記述し、問題がどこにあるのかを正確に述べれば、確かにあなたを助けることができます。 – ImportanceOfBeingErnest

答えて

2

「42000」は、ラベルは、例えば作成することができていますax.text()を使用してください。ラベルを配置するには、x位置の座標軸とy位置のデータ座標を使用できる変換を使用することです。

ax.text(1.02, 4.2e4, "42000", .. , transform=ax.get_yaxis_transform()) 

完全なコード:

import matplotlib.pyplot as plt 
import matplotlib.colors 
import numpy as np 

fig = plt.figure() 
ax = fig.add_subplot(111) 
x = [0,1,2,3] 
y = np.array([34,40,38,50])*1e3 
norm = matplotlib.colors.Normalize(30e3, 60e3) 
ax.bar(x,y, color=plt.cm.plasma_r(norm(y))) 
ax.axhline(4.2e4, color="gray") 
ax.text(1.02, 4.2e4, "42000", va='center', ha="left", bbox=dict(facecolor="w",alpha=0.5), 
     transform=ax.get_yaxis_transform()) 
plt.show() 

enter image description here

関連する問題