Как изобразить цену и объем на одном графике - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть фрейм данных, как указано ниже:

Date,Time,Price,Volume
31/01/2019,09:15:00,10691.50,600
31/01/2019,09:15:01,10709.90,13950
31/01/2019,09:15:02,10701.95,9600
31/01/2019,09:15:03,10704.10,3450
31/01/2019,09:15:04,10700.05,2625
31/01/2019,09:15:05,10700.05,2400
31/01/2019,09:15:06,10698.10,3000
31/01/2019,09:15:07,10699.90,5925
31/01/2019,09:15:08,10699.25,5775
31/01/2019,09:15:09,10700.45,5925
31/01/2019,09:15:10,10700.00,4650
31/01/2019,09:15:11,10699.40,8025
31/01/2019,09:15:12,10698.95,5025
31/01/2019,09:15:13,10698.45,1950
31/01/2019,09:15:14,10696.15,3900
31/01/2019,09:15:15,10697.15,2475
31/01/2019,09:15:16,10697.05,4275
31/01/2019,09:15:17,10696.25,3225
31/01/2019,09:15:18,10696.25,3300

Фрейм данных содержит около 8000 строк.Я хочу построить график цены и объема на одном графике.(Диапазон громкости: 0–8 000 000)

1 Ответ

0 голосов
/ 01 февраля 2019

Предположим, вы хотите сравнить цену и объем со временем, попробуйте это:

df = pd.read_csv('your_path_here')
df.plot('Time', ['Price', 'Volume'], secondary_y='Price')

enter image description here

edit : x-axis customization

Так как вы хотите настроить ось X, попробуйте следующее (это простой пример, которому вы можете следовать):

# Create a Datetime column while parsing the csv file
df = pd.read_csv('your_path_here', parse_dates= {'Datetime': ['Date', 'Time']})

Затем вам нужно создать два списка, один из которых будет содержатьположение на оси х, а другой метки.Допустим, вам нужны метки каждые 5 секунд (ваши запросы в течение 30 минут возможны, но не с данными, которые вы предоставили)

positions = [p for p in df.Datetime if p.second in range(0, 60, 5)]
labels = [l.strftime('%H:%M:%S') for l in positions]

Затем вы строите график передачи позиций и списков меток в set_xticks и set_xticklabels

ax = df.plot('Datetime', ['Price', 'Volume'], secondary_y='Price')
ax.set_xticks(positions)
ax.set_xticklabels(labels)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...