Как уменьшить толщину линии, когда ширина не работает? - PullRequest
0 голосов
/ 16 января 2019
import matplotlib.pyplot as plt
import numpy as np
import csv as csv

    x=[]
    y=[]

with open('DTS_02.csv', 'r') as csvfile:

    plots=csv.reader(csvfile, delimiter=';')

    for row in plots:
        x.append(float(row[1]))
        y.append(float(row[2]))

plt.plot(x,y, label='Hello,World')
plt.xlabel('depth')
plt.ylabel('temperature')
plt.grid()
plt.title('1-e6')
plt.show()

picture -> [1]: https://i.stack.imgur.com/9T4lP.png

Итак, я пытаюсь выполнить это, и мой образец содержит 1 миллион строк.Есть две 2 проблемы 1. Почему я получаю такую ​​толстую линию?2. Почему существует линия, соединяющая начальную и конечную точки?Кроме того, что бы вы посоветовали улучшить этот код (не переходя на новый модуль) ...

1 Ответ

0 голосов
/ 16 января 2019

A1: потому что вы строите линию, и я подозреваю, что x не отсортирован.

A2.См. Вопрос 1.

A3: используйте следующее и посмотрите, как это работает (поскольку вы используете numpy):

x = np.array(x)
y = np.array(y)
plt.plot(x[x.argsort()], y[x.argsort()], label='Hello,World')

РЕДАКТИРОВАТЬ: если у вас много шума, вы можетепопробуйте построить меньше точек, например:

plt.plot(x[x.argsort()][::3], y[x.argsort()][::3], label='Hello,World')    #each 3 points

или построить скользящее среднее (см. здесь )

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