@vityaba3

Почему PyPlot рисует фигню?

Такой код:
import matplotlib.pyplot as plt
import numpy as np

A = [[i for i in line.split()] for line in open('1.TXT')] # Читаем данные
A = np.array(A)                                                        # Делаем их numpy типом
Wl, I = (A[:,0]) , (A[:,1])                                             # Мне нужны Wl (Как абсцисса, I, как ордината)
A = None                                                                # А это мне не нужно (такой странный способ импорта 
                                                                               # я давно использую. Лень переписывать
plt.plot(Wl, I)                                                           # Рисуем
plt.show()


Данные

485,211 1007
485,216 1143
485,221 1185
485,225 1359
485,23 1332
485,235 1562
485,239 1745
485,244 2514
485,249 3667
485,254 5399
485,258 7009
485,263 10335
485,268 13550
485,273 16843
485,277 19136
485,282 19663
485,287 19422
485,291 18613
485,296 16223
485,301 13169
485,306 10239
485,31 7569
485,315 6044
485,32 4062
485,324 3199
485,329 2502
485,334 1774
485,339 1508
485,343 1295
485,348 1308
485,353 1143
485,358 984
485,362 1003
485,367 1007


Результат в Python и Exel'e

s5ci4l6gttekqbrwbieiuniw8zs.png

drfveuginwrqqls7zmdvn2ta-is.png


Что происходит?
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
@vityaba3 Автор вопроса
Потому, что на вход подавались ЮНИКОДНЫЕ СИМВОЛЫ, а не числа.
Нужно так:
A = [[i for i in line.split()] for line in open('1.TXT')]
A = np.array(A, dtype=np.float64)                       # !!!
Wl = (A[:,0])
I = (A[:,1])

plt.plot(Wl, I)


И в файле заменить все запятые на точки.

5f6af015e528d821413975.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Сбер Москва
от 180 000 до 250 000 ₽
от 130 000 ₽
deeplay Новосибирск
от 130 000 ₽
26 окт. 2020, в 10:27
30000 руб./за проект
26 окт. 2020, в 10:18
50000 руб./за проект
26 окт. 2020, в 10:08
5000 руб./за проект