我的数据看起来是这样的(但要大得多):
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
data = np.array([[0.1 , 0.1 , 0.3 , 27 , 27 ],
[0.1 , 0.1 , 0.3 , 27 , 27 ],
[0.1 , 0.1 , 0.3, 7, 7 ],
[11 , 11, 9.01, 0.1, 0.1 ],
[11 , 11, 0.3, 0.1, 0.1 ]])
我的情节是这样的:
fig = plt.figure(figsize=(5, 5), dpi=150)
ax1 = fig.add_subplot(111, projection='3d')
xpos = np.arange(data.shape[0])
ypos = np.arange(data.shape[1])
xposM, yposM = np.meshgrid(xpos, ypos, copy=False)
dx = 1
dy = 1
dz = data.ravel()
values = np.linspace(0.2, 1., xposM.ravel().shape[0])
colors = cm.rainbow(values)
ax1.bar3d(xposM.ravel(), yposM.ravel(), dz * 0, dx, dy, dz, color=colors)
结果是一个漂亮的彩色绘图(类似于How to make error bars for a 3D Bar graph?),但是我想根据下面的列表选择绘图的颜色。问题是,我需要z轴的这些特定值来表示高度,这就是为什么我不能仅仅规范化数据
color_list = [[0.1, 'grey'], [0.3, 'yellowgreen'], [7, 'black'], [9.01, 'darkgreen'], [11, 'black'], [27, 'black']]
有人知道怎么做吗?提前谢谢
目前没有回答
相关问题 更多 >
编程相关推荐