gpt4 book ai didi

python - 叠加静态 Bokeh 图

转载 作者:行者123 更新时间:2023-12-01 04:20:53 26 4
gpt4 key购买 nike

我正在尝试叠加 Bokeh 图。

上面这个: http://docs.bokeh.org/en/latest/docs/gallery/image_rgba.html

下面这个: http://docs.bokeh.org/en/latest/docs/gallery/stocks.html

反之亦然。

我正在将 x 轴更改为日期时间以适合库存图。但到目前为止,这绘制了一张空白图表。有什么建议吗?

import numpy as np
import arrow
import pandas as pd
import pandas.io.data as web
#from pandas_data_reader import data as web
from pandas import DataFrame, Series

from bokeh.io import output_notebook
output_notebook()
from bokeh.plotting import figure, show, output_file, gridplot

p1 = figure(x_axis_type = "datetime", responsive=True)


N = 100
M = 100
img = np.empty((N,M), dtype=np.uint32)
view = img.view(dtype=np.uint8).reshape((N, M, 4))
for i in range(N):
for j in range(M):
view[i, j, 0] = 0 #red
view[i, j, 1] = int(i/N*160) #green
view[i, j, 2] = int(j/N*255) #blue
view[i, j, 3] = int(i/N*255) #alpha

p1 = figure(x_range=['10/1/2015','11/1/2015'], y_range=[0,200]) #changes the view window

all_data = {}
for ticker in ['AAPL', 'IBM', 'MSFT', 'GOOG']:
all_data[ticker] = web.get_data_google(ticker, '10/1/2015', '11/1/2015')
AAPL = Series(all_data['AAPL']['Close'])
GOOG = Series(all_data['GOOG']['Close'])
MSFT = Series(all_data['MSFT']['Close'])
IBM = Series(all_data['IBM']['Close'])
p1.line(AAPL.index, AAPL, color='#A6CEE3', legend='Apple')
p1.line(IBM.index, IBM, color='#0022CC', legend='IBM')
p1.line(MSFT.index, MSFT, color='#3322DD', legend='MICROSOFT')

p1.title = "Superimposed info"

p1.image_rgba(image=[img], x=['10/1/2015'], y=[10], dw=['10/15/2015'], dh=[10])
p = gridplot([[p1]], toolbar_location=None, min_border=0, h_symmetry=True)
show(p)

最佳答案

这就是你所说的叠加吗? enter image description here

如果这里的情况是我与您提供的大部分代码一起使用的代码片段,我只是更改了获取数据的调用,因为我位于代理后面并且无法获取它;):

from __future__ import division
import pandas as pd
import numpy as np
from pandas import Series
from bokeh.plotting import figure, show, output_file

N = 100
img = np.empty((N,N), dtype=np.uint32)
view = img.view(dtype=np.uint8).reshape((N, N, 4))
for i in range(N):
for j in range(N):
view[i, j, 0] = int(i/N*255)
view[i, j, 1] = 158
view[i, j, 2] = int(j/N*255)
view[i, j, 3] = 255

output_file("image_rgba.html", title="image_rgba.py example")

print img.shape
p = figure(x_range=[0,20], y_range=[0,160])
p.image_rgba(image=[img], x=[0], y=[0], dw=[20], dh=[160])


all_data = {}
for ticker in ['AAPL', 'IBM', 'MSFT', 'GOOG']:
# all_data[ticker] = web.get_data_google(ticker, '10/1/2015', '11/1/2015')
path = 'C:/Users/myuser/Downloads/' + ticker.lower() + '.csv'
all_data[ticker] = pd.read_csv(path)

AAPL = Series(all_data['AAPL']['Close'])
GOOG = Series(all_data['GOOG']['Close'])
MSFT = Series(all_data['MSFT']['Close'])
IBM = Series(all_data['IBM']['Close'])

p.line(AAPL.index, AAPL, color='#A6CEE3', legend='Apple')
p.line(IBM.index, IBM, color='#0022CC', legend='IBM')
p.line(MSFT.index, MSFT, color='#3322DD', legend='MICROSOFT')

show(p) # open a browser

edit : p =figure(x_range=[0, 20], y_range=[0, 160], x_axis_type="datetime") 会将 x_axis 更改为日期时间对象,但您的数据索引是整数,因此 1 到 20 将显示为自纪元以来的秒数,请参阅此 issue :我认为您目前无法将斧头显示为 dd/mm/yyyy 或任何您想要的格式。

关于python - 叠加静态 Bokeh 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33708732/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com