Python3(Anaconda3)和Matplotlib绘制指定的x值

Python3(Anaconda3)和Matplotlib绘制指定的x值,python,python-3.x,matplotlib,Python,Python 3.x,Matplotlib,我的问题是关于情节的可读性问题。我读了几个关于StackOverflow的类似问题,但没有一个完全解决了这个问题 我有一个txt文件,有100个横坐标和纵坐标值。 我想打印它们,但在x轴上,我只想显示指定的刻度值。 例如:第1、2、3、4、5、44、88和99分。这只是为了更好的可读性,因为我无论如何都想画出所有的点。 我尝试的是: import matplotlib.pyplot as plt import numpy as np plt.xlabel("Values") plt.ylabe

我的问题是关于情节的可读性问题。我读了几个关于StackOverflow的类似问题,但没有一个完全解决了这个问题

我有一个txt文件,有100个横坐标和纵坐标值。 我想打印它们,但在x轴上,我只想显示指定的刻度值。 例如:第1、2、3、4、5、44、88和99分。这只是为了更好的可读性,因为我无论如何都想画出所有的点。 我尝试的是:

import matplotlib.pyplot as plt
import numpy as np

plt.xlabel("Values")
plt.ylabel("Percentage")

for i in range(99):
    try:
        filename = "Folder_Name/foo_%d.txt" % i
        filevals = np.loadtxt(filename, usecols=1) 
        idx = [1, 2, 3, 4, 5, 44, 88, 99]
        y = [filevals[k]*100 for k in idx]
        plt.plot(range(len(idx)), y, 'o-', label="values_foo_%s" % i)
        plt.xticks(range(len(idx)), idx)
    except IOError or IndexError:
        break

plt.legend(loc=4)
plt.grid(True)
plt.tight_layout()
plt.savefig("plot_test.pdf")
plt.close()
当然,结果是,图形仅绘制忽略其他点的值,因此,第5点和第44点之间的距离与第4点和第5点之间的距离相同。

只需写入:plt.xtick[0,1,2,3,4,43,87,98]

另外,不要忘记列表索引以0开头。

plt.xticksidx imo