[英]Plotting pixel coordinates from CSV using Python
我從圖像中提取了像素坐標(x,y)。 為了驗證坐標,我試圖繪制那些像素坐標。 但是我做不到。
我試圖用烏龜密謀,但我還是做不到
import turtle
import math
def drawMap():
filename = r"build_coords.csv"
trace = turtle.Turtle()
trace.up()
#scr = Screen()
with open(filename, 'r') as f_input:
for row in f_input:
row = row.strip('()\n').split(',')
x = float(row[0])
y = float(row[1])
trace.goto(x,y)
trace.write(".")
raw_input()
#scr.mainloop()
drawMap()
ValueError:無法將字符串轉換為浮點型:'0 \\ t3'
請幫助解決此問題。 提前致謝
您的輸入邏輯:
x, y = row.strip('()\n').split(',')
似乎暗示形式的輸入:
(10, 20)
(30, 40)
不是CSV。 您的錯誤消息似乎暗示輸入了以下形式:
10\t20
30\t40
因此,正確回答問題的關鍵是讓您向我們展示一些示例輸入。 下面是對代碼的重做:
from turtle import Turtle, Screen
FILENAME = "build_coords.csv"
def drawMap(filename):
trace = Turtle(visible=False)
trace.penup()
with open(filename) as f_input:
header = f_input.readline().rstrip() # "X,Y"
for row in f_input:
x, y = row.rstrip().split(',') # 10,20\n
trace.goto(float(x), float(y))
trace.dot(2)
screen = Screen()
drawMap(FILENAME)
screen.exitonclick()
更新
根據您的評論,我現在假設數據為CSV,如下所示:
X,Y
0.0,3.0
0.0,4.0
0.0,5.0
0.0,6.0
0.0,8.0
0.0,10.0
0.0,11.0
0.0,15.0
0.0,16.0
我已經相應地更新了上面的代碼。
錯誤消息指出您的文本內有一個制表符('\\ t'-字符),您的strip命令中並未將其刪除。 當您嘗試將字符串轉換為導致ValueError的浮點時,“ \\ t”字符仍然存在。
因此,您可以嘗試找出輸入文件為何首先包含表格的原因,或者將其與其他空格字符一起刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.