Matplotlib Python散点图
我想绘制一个尺寸为50*50的数据集。每个数据都与一个“概率”相关联,一个介于0和1之间的数字。我想用颜色渐变来表示它们的概率。我知道如何使用matplotlib工具绘制点。但是我应该如何将它们与适当的颜色联系起来呢Matplotlib Python散点图,python,matplotlib,scatter-plot,Python,Matplotlib,Scatter Plot,我想绘制一个尺寸为50*50的数据集。每个数据都与一个“概率”相关联,一个介于0和1之间的数字。我想用颜色渐变来表示它们的概率。我知道如何使用matplotlib工具绘制点。但是我应该如何将它们与适当的颜色联系起来呢 谢谢 像这样的?关键点是c=z,它告诉scatter根据z的标量值将cmap指定的颜色映射应用于每个点 import numpy import matplotlib.pyplot as plt x=numpy.random.randint(0,100,size=25) y=nump
谢谢 像这样的?关键点是
c=z
,它告诉scatter
根据z
的标量值将cmap
指定的颜色映射应用于每个点
import numpy
import matplotlib.pyplot as plt
x=numpy.random.randint(0,100,size=25)
y=numpy.random.randint(0,100,size=25)
z=numpy.random.rand(25)
plt.scatter(x, y, c=z, s=100, cmap=plt.cm.cool, edgecolors='None', alpha=0.75)
plt.colorbar()
plt.show()
您还可以将颜色列表作为c
参数提供。比如说
colors=[(1,0,1,el) for el in z]
plt.scatter(x, y, c=colors, s=100, edgecolors='None')
在这种情况下,每个点都有一个与之关联的RGB元组,scatter
使用您指定的颜色。在上面给出的两行中,每个点的alpha值根据概率z
而变化。仅使用scatter
的alpha
关键字无法实现这一点:
您需要使用颜色贴图将特定颜色与每个点关联。例如,考虑下面的代码
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import random as ran
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
cmhot = plt.cm.get_cmap("hot")
xs = [ran.random()*50 for n in range(0,50)]
ys = [ran.random()*50 for n in range(0,50)]
zs = [ran.random() for n in range(0,50)]
l = ax.scatter(xs, ys, zs, c=zs, cmap=cmhot)
fig.colorbar(l)
plt.show()
其结果是:
在这种情况下,通过使用默认的“热”颜色映射,颜色与z值相关联。您能告诉我们您尝试了什么吗?你看过报纸了吗?你不明白或者没有按照你预期的那样工作呢?要确认你想在二维空间中绘制2500个维度吗。。。重复?刚才有人问。