这是一个例子
import numpy as np
import matplotlib.pyplot as plt
x = np.random.rand(100)
y = np.random.rand(100)
t = np.arange(100)
plt.scatter(x, y, c=t)
plt.show()
在这里,您可以根据索引设置颜色,该索引t
只是的数组[1, 2, ..., 100]
。
也许一个更容易理解的例子稍微更简单
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(100)
y = x
t = x
plt.scatter(x, y, c=t)
plt.show()
请注意,您传递的数组c
不需要具有任何特定的顺序或类型,即,不需要像这些示例中那样进行排序或整数。绘图例程将缩放颜色图,以使最小值/最大值c
对应于颜色图的底部/顶部。
您可以通过添加来更改颜色图
import matplotlib.cm as cm
plt.scatter(x, y, c=t, cmap=cm.cmap_name)
导入matplotlib.cm
是可选的,因为您也可以调用颜色图cmap="cmap_name"
。有一个颜色图的参考页,显示每个图的外观。还知道您可以通过简单地将其称为来反转颜色图cmap_name_r
。所以要么
plt.scatter(x, y, c=t, cmap=cm.cmap_name_r)
# or
plt.scatter(x, y, c=t, cmap="cmap_name_r")
将工作。例如"jet_r"
或cm.plasma_r
。这是新的1.5颜色图viridis的示例:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(100)
y = x
t = x
fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.scatter(x, y, c=t, cmap='viridis')
ax2.scatter(x, y, c=t, cmap='viridis_r')
plt.show()
您可以使用添加色条
plt.scatter(x, y, c=t, cmap='viridis')
plt.colorbar()
plt.show()
请注意,如果要显式地使用图形和子图(例如fig, ax = plt.subplots()
或ax = fig.add_subplot(111)
),则添加颜色条可能会更加复杂。可以在此处找到单个子图颜色条的良好示例,在此处为2个子图1个颜色条找到良好的示例。