2017-05-05 17 views
0

我想通過for循環讀取文件並從每次讀取中提取 變量v後繪圖。這個變量v我用來爲不同的文件放置不同的label。具體的在我的情況是Python圖:同一行上的圖例文本

ax.plot(data[:,0], data[:,1], linewidth=4.0, label='$v$ = {} $U$'.format(V)) 

而對於傳奇的一部分我剛纔用plt.legend(loc='upper left')

但是,圖例標籤不會出現在一行上,而是會用下一行進行分割和調整。

enter image description here

ü放在同一行,其中v是什麼?我嘗試了borderpad=2的傳說,但無濟於事!

+0

這一切都取決於'V'是什麼。但你在你的問題中保留了這個祕密。 – ImportanceOfBeingErnest

+0

您可以很容易地發現'V'是一個在兩次迭代中取值爲0.1和0.2的變量。主代碼太大了。 – hbaromega

+0

我的意思是你得到換行符的原因是**在'V' **裏面。 – ImportanceOfBeingErnest

回答

0

這一切都取決於什麼V是。默認情況下,圖例標籤中不會有換行符。

import matplotlib.pyplot as plt 
V = 0.1 
fig, ax = plt.subplots() 
ax.plot([0,1], [2,1], linewidth=4.0, label='$v$ = {} $U$'.format(V)) 
plt.legend() 
plt.show() 

enter image description here

,如果你在V有斷行,您可能會得到一個換行符,例如V = "0.1\n"。在這種情況下,您必須在格式化標籤之前將其刪除。

+0

坦率地說,我已經使用'V = subprocess.check_output('echo%s | cut -f2 -dV | cut -f1 -dU'%datafile,shell = True)'從'datafile'中提取'V'。 shell命令是否留下隱含的新行? – hbaromega