如何在Matplotlib(xticks和yticks)中排序坐标

2024-09-28 01:33:55 发布

您现在位置:Python中文网/ 问答频道 /正文

好的,我正在做一个简单的程序,从一个文本板中提取坐标,然后在一个图形上绘制文本板中的内容。我原以为这会很简单,但我对matplotlib很陌生,所以我仍然不完全理解。我已经正确地完成了大部分代码,但唯一不起作用的是,当我把值放在图表中时,它们都是无序的。我想对xticks和yticks进行排序,这样它看起来就像是一个真实的线图,你会在数学中看到,所以你可以看到低坐标比高坐标低,反之亦然。这是我的密码:

import matplotlib
import matplotlib.pyplot as plt
import numpy as np
def split(word): 
    return list(word) 
fileIWant = open('C:/Users/JustA/Desktop/Python Shenanigans/Converting Coordinates in a .txt to a Graph/Coordinates.txt', 'r');
stopwords = ['\n']
array = fileIWant.readlines()
array = [array.replace('\n', '') for array in array if array not in stopwords]
fileIWant.close()
editFile = open('C:/Users/JustA/Desktop/Python Shenanigans/Converting Coordinates in a .txt to a Graph/Coordinates.txt', 'w')
array_length = len(array)
x = []
y = []


for i in range(array_length):
    dataSplit = array[i].split()
    getCoordinateX = dataSplit[1]
    getCoordinateY = dataSplit[3]
    x.append(getCoordinateX)
    y.append(getCoordinateY)
    plt.scatter(x, y)
    plt.plot(x, y) #Add this line in if you want to show lines.
plt.title('Your Coordinate Graph')
plt.xlabel('X Coordinates')
plt.ylabel('Y Coordinates')
#plt.xticks([-100,-80,-60,-40,-20,0,20,40,60,80,100])
#plt.yticks([-100,-80,-60,-40,-20,0,20,40,60,80,100])
plt.show()
editFile.close()

我注释掉了我为滴答声写的内容,因为它根本不起作用。那些被注释掉的,看起来还可以,但是很混乱。我想它只是将它们按.txt中的顺序排列,而我希望它们在代码中按顺序排列。下面是它现在输出的内容:This is what my graph looks like.

很抱歉,如果这是如此简单,以前从未有人问过它,就像我说的,matplotlib非常新,如果我必须使用它,numpy。我导入它是因为我认为我可能不得不这么做,但我认为我还没有真正使用它。另外,我将把坐标按顺序重写到图中,但我想我以后可以自己做


Tags: to代码in文本importtxt内容matplotlib
1条回答
网友
1楼 · 发布于 2024-09-28 01:33:55

问题是您的坐标是字符串,这意味着matplotlib只是根据字符串(“分类”轴标签)打印字符串。要修复此问题,只需将字符串转换为数字,例如x.append(int(getCoordinateX))

请注意,您也不必将plt.scatter/plt.plot放入循环中-只需在整个数组中调用其中一个循环。这可能也会让事情变得更快

相关问题 更多 >

    热门问题