Случайная линия добавлена ​​в сюжет? - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь сделать простой график на python из файла данных, но когда я запускаю ячейку, она отображает мои данные и случайную линию.Как это исправить?Я включил свой код и фотографию участка ниже.Я также включу небольшой пример файла данных "sunspots.txt"

import numpy as np
import matplotlib.pyplot as plt

data = np.loadtxt("sunspots.txt")

plt.plot(data)
plt.show

Вот изображение графика:

enter image description here

Вот некоторые данные файла:

0   58.0
1   62.6
2   70.0
3   55.7
4   85.0
5   83.5
6   94.8

1 Ответ

0 голосов
/ 13 марта 2019

Ваше data, если просто указать один аргумент в plot, как вы это сделали (plt.plot(data)), приведет не случайно, а намеренно к построению двух графиков:
Первый имеет значения

data[:,0]
# array([0., 1., 2., 3., 4., 5., 6.])

и второй

data[:,1]
# array([58. , 62.6, 70. , 55.7, 85. , 83.5, 94.8])

и тогда это выглядит как

enter image description here

Но вы хотите, чтобы в первом столбце были значения x, а во втором столбце - значения y одного отдельного графика.

Следовательно, вы можете написать, например,

plt.plot(data[:, 0], data[:, 1])

или (как в вашем случае значения x в любом случае идентичны индексам):

plt.plot(data[:, 1])

Или еще один способ в python - извлечь компоненты массива в несколько параметров с помощью оператора *. Однако, чтобы сделать это, вы должны обработать транспонированную версию data, которая равна data.T, в противном случае вы бы построили 7 графиков со значениями [0, 58], [1, 62.6], .. ...

plt.plot(*data.T)

В любом случае, каким бы способом вы ни выбрали, результат будет

enter image description here

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