2014-02-14 78 views
0

我做繪製2D numpy的直方圖和與包含使用mayavi imshow的邊框的等邊框大小?

mayavi.mlab.imshow(my2dhistogram, interpolate=False) 

對於一個5x5的陣列的輸出如下顯示的一個非常簡單的任務,

enter image description here

我想垃圾箱沿着邊界與中心的大小相同。我理解mayavi正在做什麼的邏輯,但對於這個應用程序,我絕對需要箱子的大小相等。這是爲了科學可視化,其中每個箱代表檢測器表面上的測量。

有什麼建議嗎?

回答

1

知道如何做到這一點的正確方法(好像這將是非常難以得到的權利,從我知道imshow),但我有一個概念上的建議。

用(N + 2)x(N + 2)矩陣表示曲面上項目的NxN矩陣,並將邊界條目設置爲-1。然後製作一個自定義的色彩地圖,使您所需的色彩地圖包含在0和1之間,其他所有條目都爲(0,0,0,0)。我不確定如何做到這一點 - iirc mayavi模塊不允許你設置不連續的顏色表,但是你仍然可以通過這種方式破解它。讓我知道有關顏色表的部分是否令人困惑,並且我可以提供一些代碼以使其工作。

此外,是否有一個原因,你需要使用mayavi的imshow而不是說matplotlib這個基本的2D問題?

+0

這不是一個2D問題,這是爲了科學可視化。我確實做了一個matplotlib實現,這是我想要的。http://stackoverflow.com/questions/21768497/matplotlib-3d-plot-colors-appear-darker-than-normal 這就是我想要的。我希望爲此使用mayavi,因爲之後我想要在盒子內部可視化以在3D中顯示加權體素。 Mayavi有一些很好的工具可以做到這一點,比如pipeline.volume。我可能會最終使用mayavi和matplotlib來分別顯示這些情況。 – abnowack