如何获得散景图像来绘制左上角的原点像matplotlib?

时间:2016-08-26 04:25:21

标签: python matplotlib bokeh

如何使用散景来绘制左上角的原始图像,如matplotlib?

我可以通过旋转和转置2d数组来实现这一点,但有没有办法在不修改数组的情况下执行此操作? (修改数组并不理想,因为轴标签不会与原始数据匹配。)

from bokeh.plotting import figure, output_file, show
import matplotlib.pyplot as plt
import numpy as np

img = np.zeros((5,5), dtype=np.int8)
img[0][0] = 250 
img[0][1] = 250 
img[0][4] = 500
img[0][3] = 500 
img[1][4] = 500 

output_file("default.html")
plot1 = figure(x_range=(0, img.shape[0]), y_range=(0, img.shape[1]))
plot1.image(image=[img], x=0, y=0, dw=img.shape[0], dh=img.shape[1], palette="Spectral10")
show(plot1)

output_file("rotated_transpose.html")
plot2 = figure(x_range=(0, img.shape[0]), y_range=(0, img.shape[1]))
plot2.image(image=[np.rot90(np.transpose(img))], x=0, y=0, dw=img.shape[0], dh=img.shape[1], palette="Spectral10")
show(plot2)

plt.imshow(img, cmap=plt.get_cmap('Spectral'), interpolation="nearest")
plt.show()

enter image description here

我已尝试反向设置y范围并指定轴位置,但这仍然与matplotlib坐标系不匹配:

plot3 = figure(x_range=(0, img.shape[0]), y_range=(img.shape[1], 0), x_axis_location='above', y_axis_location='left')
plot3.image(image=[img], x=0, y=0, dw=img.shape[0], dh=img.shape[1], palette="Spectral10")
show(plot3)

1 个答案:

答案 0 :(得分:2)

Bokeh图像绘图也存在问题。对我唯一有效的方法是在绘制img之前添加img=np.flipud(img)。 希望对您有所帮助!