简体   繁体   English

如何在这个 matplotlib 图中使用颜色图?

[英]How to use colormap in this matplotlib plot?

I am trying to add a colormap to this matplotlib plot (code below).我正在尝试向这个matplotlib图(下面的代码)添加一个颜色图。 I have used a gradient of color to illustrate the progression of the motion in time or steps (the hue is a function of time or n).我使用了渐变颜色来说明运动在时间或步骤中的进展(色调是时间或 n 的函数)。 Now I want to add a colormap in the inset of the figure and I am not able to succeed.现在我想在图中的插图中添加一个颜色图,但我无法成功。

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.style.use('ggplot') 
n = 5000
x = np.cumsum(np.random.randn(n))
y = np.cumsum(np.random.randn(n))
# We add 10 intermediary points between two successive points. We 
# interpolate x and y.
k = 10
x2 = np.interp(np.arange(n * k), np.arange(n) * k, x)
y2 = np.interp(np.arange(n * k), np.arange(n) * k, y)
fig, ax = plt.subplots(1, 1, figsize=(8, 8))
# Now, we draw our points with a gradient of colors.
ax.scatter(x2, y2, c=range(n * k), linewidths=0, marker='o', s=3, 
cmap=plt.cm.jet,)
ax.axis('equal')
ax.set_axis_off()

What I am looking for is a colorbar on the right-hand side of the plot with evenly divided scales from 0 to 5000.我正在寻找的是图右侧的颜色条,其比例从 0 到 5000 均匀划分。

You need to provide the axis handle to the colorbar您需要为colorbar提供轴句柄

ax_ = ax.scatter(x2, y2, c=range(n * k), linewidths=0, marker='o', s=3, cmap=plt.cm.jet,) # <---- store plot instance in ax_
ax.axis('equal')

plt.colorbar(ax_) # <--- here provide ax_ (can choose other name as well)
ax.set_axis_off()

在此处输入图片说明

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM