Как найти линию тренда с высокой и низкой линией? - PullRequest
2 голосов
/ 27 апреля 2020

Я использую наборы данных достоверности. Мои наборы данных выглядят следующим образом.

Date        Open    High        Low         Close       Adj Close   year_month
2019-04-15  1345.0  1348.949951 1335.000000 1340.150024 1332.769409 2019-04
2019-04-16  1345.0  1360.000000 1340.000000 1343.750000 1336.349609 2019-04
2019-04-18  1375.0  1389.750000 1365.000000 1385.949951 1378.317139 2019-04
2019-04-22  1360.0  1367.000000 1341.300049 1345.349976 1337.940796 2019-04
2019-04-23  1348.0  1373.000000 1346.000000 1363.849976 1356.338867 2019-04 

Это мой код, но ось x выглядит грязно, если мы видим график

f,ax1 = plt.subplots(figsize=(8, 5))
ax1.set_xlabel('Date')
ax1.set_ylabel('Price')
ax1.set_title('Original Plot')
ax1.plot('Date', 'Adj Close', data = df);

Вывод: -

Output1

Поэтому я использую другую функцию, но эта цифра уже не такая, как раньше.

f,ax1 = plt.subplots(figsize=(15, 5))
ax1.set_xlabel('Date')
ax1.set_ylabel('Price')
ax1.set_title('Original Plot')
ax1.plot('year_month', 'Adj Close', data = df);

Вывод: - output2

Ожидаемый результат: - (Примечание: - Это только пример. Эта цифра не связана с моими наборами данных)

output3

Надежда чтобы получить быстрый ответ. Заранее спасибо, ребята.

1 Ответ

1 голос
/ 27 апреля 2020

Проблема в вашем случае заключается только в определении отметок по оси X. Я создал фиктивные данные , чтобы доказать свою точку зрения.

Вот как выглядел график перед установкой xticks:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("test.csv")
f,ax1 = plt.subplots(figsize=(15, 5))
ax1.set_xlabel('Date')
ax1.set_ylabel('Price')
ax1.set_title('Original Plot')
ax1.plot('Date', 'Price', data = df)

enter image description here

А вот график после установки xticks; Вы можете сделать это, просто написав следующие две строки перед plt.show()

ax1.set_xticks(ax1.get_xticks()[::30])
plt.xticks(rotation=45)

enter image description here

Надеюсь, что это ответ на ваш вопрос !!

...