Python: усечение ширины столбца с помощью Datareader - PullRequest
0 голосов
/ 06 января 2019

Я настраиваю график matplotlib с ценой акции и объемом . График будет получать данные от pandas datareader.

Моя проблема в том, что объем очень высок по сравнению с ценой, поэтому график их будет выглядеть очень непропорционально, и я не могу его масштабировать из-за постоянно меняющихся запасов.

Как я могу обрезать ширину каждого столбца, чтобы вместо «10» цифр в каждой строке отображалось только «5»? .

Я пытался разделить каждый столбец на строку и использовать разбиение, однако моя проблема заключалась в том, чтобы найти способ добавить их обратно в кадр данных.

- sidenote: если есть способ получить объем в виде гистограммы, а цена - это линия, которая была бы потрясающей.

start = datetime.date(2017, 12, 29)
end = datetime.date(2018, 12, 29)
f = web.DataReader('GOOGL', 'iex', start, end)


f = f.head[10]
price = f.open
volume = f.volume
time = f.shape[0]

plt.plot(time,price)
plt.plot(time, volume)
plt.show()

1 Ответ

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

Вы можете установить двойные оси с разным масштабом.

start = datetime.date(2017, 12, 29)
end = datetime.date(2018, 12, 29)
import pandas_datareader.data as web
f = web.DataReader('GOOGL', 'iex', start, end)   
f = f.head()

fig, ax1 = plt.subplots()
ax1.bar(x = f.index, height = f.volume/1000, width = 0.3)
ax1.set_ylabel('volumn in 1000s', color='b')
ax1.tick_params('y', colors='b')

ax2 = ax1.twinx()
ax2.plot(f.index, f.open, 'g')
ax2.set_ylabel('open price', color='g')
ax2.tick_params('y', colors='g')

fig.tight_layout()
plt.show()

enter image description here

...