簡體   English   中英

向 matplotlib plot 添加文本時出現 TypeError

[英]TypeError when adding text to matplotlib plot

我有一個 csv 文件,其中顯示了一些電子零件的一些參考及其坐標:

使用 df = pandas.read_csv(.......) 輸出 csv 文件

我一直在使用matplotlib.pyplotmatplotlib.patchesRectangle為這些參考繪制矩形:

import matplotlib.pyplot as plt
import matplotlib.patches as patches
from patches import Rectangle

fig = plt.figure()
ax = fig.add_subplot(111)

我決定為這些坐標創建矩形,並使用plt.text將 csv 文件中的“零件 ID”設置為它們的名稱:

n=0

for n in range(30):
    z = df['Part ID'][n]
    rect_n = patches.Rectangle((df['X'][n], df['Y'][n]), 200, 300, fill = False)

(我隨機選擇了 200 作為寬度和 300 作為高度。不要介意。)

for n in range(30):
    z_n = df['Part ID'][n]
    rect_n = patches.Rectangle((df['X'][n], df['Y'][n]), 200, 300, fill = False)
    ax.add_patch(rect_n)
    plt.text((df['X'][n], df['Y'][n]), 'ID: %s' % (z_n))

df.plot(kind='scatter', x='X', y='Y', ax=ax)
ax.set_axisbelow(True)
ax.grid(linestyle='-', linewidth='2', color='g')

plt.text行中,我嘗試使用 csv 文件中的部件 ID 命名矩形。 我創建了一個變量z並將名稱設置為z作為字符串。 確切的問題從這里開始:

當我開始運行程序時,所有代碼都可以正常工作,而無需將它們命名為 Part ID。

未命名的 csv 文件的完整繪圖

在這張圖之后,我決定添加plt.text行來命名它們。

但我收到錯誤: TypeError: text() missing 1 required positional argument: 's'

plt.text(.....%s)中的字符串分配存在問題。 有沒有人知道該怎么做?

我怎樣才能給他們每個人分配他們的零件 ID 名稱?

plt.text的調用簽名是:

plt.text(x, y, s, ...)

注意xys都是 arguments 到這個 function。

您使用過:

plt.text((df['X'][n], df['Y'][n]), 'ID: %s' % (z_n))

您已將 x, y 坐標作為元組(df['X'][n], df['Y'][n])給出。 從它們周圍刪除括號,它應該可以正常工作:

plt.text(df['X'][n], df['Y'][n], 'ID: %s' % (z_n))

更好的是,為了確保您將正確的 arguments 提供給 function,您可以將 arguments 命名為:

plt.text(x=df['X'][n], y=df['Y'][n], s='ID: %s' % (z_n))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM