2016-12-16 80 views
0

我已經創建了一個圖,我想要繪製的第一個項目的標籤部分是字符串,部分是數組「t」的元素0。我嘗試設置變量the_initial_state等於字符串:Matplotlib中的多個標籤

the_initial_state = str('the initial state') 

而繪製如下:

plt.figure(5) 
fig = plt.figure(figsize=(6,6), dpi=1000) 
plt.rc("font", size=10) 
plt.title("Time-Dependent Probability Density Function") 
plt.xlabel("x") 
plt.xlim(-10,10) 
plt.ylim(0,0.8) 
plt.plot(x,U,'k--') 
**plt.plot(x,Pd[0],'r',label= the_initial_state, label =t[0])** 
plt.plot(x,Pd[1],'m',label=t[1]) 
plt.plot(x,Pd[50],'g',label=t[50]) 
plt.plot(x,Pd[100],'c',label=t[100]) 
plt.legend(title = "time", bbox_to_anchor=(1.05, 0.9), loc=2, borderaxespad=0.) 

但我收到由** *指示行「無效語法」錯誤*。

有沒有什麼辦法讓標籤包含一個字符串和一個數組的元素到固定的小數位數?

+1

這裏你想給標籤兩次,不能你追加值轉換成一個字符串,然後將其分配給標籤 –

回答

1

'the initial state'已經是一個字符串,所以你不需要再次施放它。

我目前沒有看到語法錯誤,但肯定無法將標籤設置兩次。

在python中對一個字符串和一個浮點值進行計算可以使用format函數完成。

the_initial_state = 'the initial state {}'.format(t[0]) 
plt.plot(x,Pd[0],'r',label= the_initial_state) 

應該工作。

在解釋格式語法之外有一個nice page。例如,浮子2.345672格式化到小數點後2位,使用
"{:.2f}".format(2.345672)

+0

是也可以在該格式函數中更改t [0]的小數位數? – XBB

+1

是的,這是可能的,請參閱編輯。 – ImportanceOfBeingErnest