#python #numpy #matplotlib
Вопрос:
У меня есть следующие значения y, x:
1.0 0.06
1.0 0.09
1.0 0.12
1.0 0.16
1.0 0.19
1.0 0.22
1.0 0.25
1.0 0.28
1.0 0.31
1.0 0.34
1.0 0.38
1.0 0.41
1.0 0.44
1.0 0.47
1.0 0.5
1.0 0.53
1.0 0.56
0.95 0.56
0.95 0.59
0.95 0.62
0.95 0.66
0.96 0.69
0.96 0.72
0.96 0.75
0.96 0.78
0.93 0.78
0.93 0.81
0.93 0.84
0.93 0.88
0.94 0.91
0.94 0.94
0.91 0.94
все, что я хочу, — это отобразить эти значения Y, X на графике с отметками от 0 до 1 с шагом .1.
вот что я попробовал:
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
ax.grid()
ax.set_xticks([0,.1,.2,.3, .4, .5, .6, .7, .8, .9, 1])
ax.set_yticks([0,.1,.2,.3, .4, .5, .6, .7, .8, .9, 1])
ax.plot(r, p)
plt.show()
и вот что я получаю взамен:
Комментарии:
1. Я подозреваю, что ваши данные считываются в виде строк, а не поплавков, и, таким образом, matplotlib отображает их как категориальные данные. Первое, что нужно проверить: каков тип данных
r
иp
после того, как вы их прочитали? Если это строки, попробуйте преобразовать их в поплавки перед построением графика.
Ответ №1:
Вот что я получаю, когда запускаю ваш код как есть:
import matplotlib.pyplot as plt
import numpy as np
arr = np.array([[1.0, 0.06],
[1.0, 0.09],
[1.0, 0.12],
[1.0, 0.16],
[1.0, 0.19],
[1.0, 0.22],
[1.0, 0.25],
[1.0, 0.28],
[1.0, 0.31],
[1.0, 0.34],
[1.0, 0.38],
[1.0, 0.41],
[1.0, 0.44],
[1.0, 0.47],
[1.0, 0.5],
[1.0, 0.53],
[1.0, 0.56],
[0.95, 0.56],
[0.95, 0.59],
[0.95, 0.62],
[0.95, 0.66],
[0.96, 0.69],
[0.96, 0.72],
[0.96, 0.75],
[0.96, 0.78],
[0.93, 0.78],
[0.93, 0.81],
[0.93, 0.84],
[0.93, 0.88],
[0.94, 0.91],
[0.94, 0.94],
[0.91, 0.94],])
fig, ax = plt.subplots()
ax.grid()
ax.plot(arr[:, 0], arr[:, 1])
ax.set_xticks([0,.1,.2,.3, .4, .5, .6, .7, .8, .9, 1])
ax.set_yticks([0,.1,.2,.3, .4, .5, .6, .7, .8, .9, 1])
plt.show()
выход:
ответ: у вас есть ошибка где-то за пределами кода, который вы показываете, возможно, значения, которые вы строите, не являются значениями, которые вы показываете в вопросе.