您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python中的散点图和颜色映射

Python中的散点图和颜色映射

这是一个例子

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个颜色条找到良好的示例。

python 2022/1/1 18:31:02 有229人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶