Python3 (Anaconda3) и Matplotlib отображают заданные значения x-ases - PullRequest
0 голосов
/ 05 марта 2019

У меня вопрос о читабельности сюжета.Я прочитал несколько похожих вопросов о StackOverflow, но ни один из них полностью не решил проблему.

У меня есть текстовый файл со 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-м.

1 Ответ

1 голос
/ 05 марта 2019

Просто напишите: plt.xtick([0, 1, 2, 3, 4, 43, 87, 98])

Также не забывайте, что индекс списка начинается с 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...