为bar3d matplotlib打印选择颜色

2024-09-30 10:35:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据看起来是这样的(但要大得多):

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']]

有人知道怎么做吗?提前谢谢


Tags: 数据importdatamatplotlibasnpfigcm

热门问题