基于不同于x和y的列表的散点颜色贴图(Python)



假设您有以下内容:

import matplotlib.pyplot as plt
x = [0.8, 0.4, 0.6, 1, 1.5, 1.8, 2.0, 0.5, 1.3, 0.1]
y = [0.5, 0.12, 0.45, 0.98, 1.31, 1.87, 1.0, 0.11, 1.45, 0.67]
r = [x[i]/y[i] for i in range(len(x))]
fig, ax = plt.subplots(1,1, tight_layout=True, figsize=(10,10))
ax.subplot(x,y,cmap=?) 

现在我想画出这个,并有一个彩色地图。然而,点的颜色是由r的值给定的。我该如何做到这一点?

提前谢谢。

以下是的操作方法

import matplotlib.pyplot as plt
x = [0.8, 0.4, 0.6, 1, 1.5, 1.8, 2.0, 0.5, 1.3, 0.1]
y = [0.5, 0.12, 0.45, 0.98, 1.31, 1.87, 1.0, 0.11, 1.45, 0.67]
r = [x[i]/y[i] for i in range(len(x))]
fig, ax = plt.subplots(1,1, tight_layout=True, figsize=(10,10))
ax.scatter(x, y, c=r)

您也可以更改默认的颜色映射

ax.scatter(x, y, c=r, cmap='viridis')

完整的彩色地图参考

您可以使用MatPlotLib的pyplot.scatter,它采用2个数组(x值,y值(作为必需参数。您还可以提供长度为x和y的第三个数组c,用于设置每个点的颜色值。

在您的情况下:

ax.scatter(x=x,y=y,c=r)

就这么简单!

最新更新