如何使用cb在Python中创建散点图

2024-04-18 04:22:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个散点图与我的数据,我已经在一个.txt文件存储cbar。我在stackoverflow上找到了一段代码,并对其进行了测试,以确定它是否能与我的数据一起工作。你知道吗

示例代码如下:

for record in range(5):
    x = rand(50)
    y = rand(50)
    c = rand(1)[0] * np.ones(x.shape)
    X.append(x)
    Y.append(y)
    C.append(c)
X = np.hstack(X)
Y = np.hstack(Y)
C = np.hstack(C)
ms=45
s = plt.scatter(X,Y,c=C, cmap=cm,s=ms)
cbar = plt.colorbar()
cbar.set_label('test')
plt.savefig('pics/test/test.png', dpi=300)

以上代码生成以下散点图:

enter image description here

我已经将上面的简单代码改编成这样的内容,用于我的数据:

cm = plt.cm.get_cmap('YlOrRd')
x, y, z = np.loadtxt('test.txt', unpack=True) 
ms=45
pareto = plt.scatter(x,y,z, cmap=cm,s=ms)
cbar = plt.colorbar()
cbar.set_label('test')
plt.savefig('pics/test/test.png', dpi=300)

但是,上面的代码返回以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Mason\Desktop\WinPython-64bit-2.7.6.4\python- 
2.7.6.amd64\lib\site- 
packages\spyderlib\widgets\externalshell\sitecustomize.py", line 540, in 
runfile
    execfile(filename, namespace)
  File "F:/Optimisation/Plotting_data.py", line 28, in 
<module>
    d = plt.scatter(x,y,z, cmap=cm,s=ms)
TypeError: scatter() got multiple values for keyword argument 's'
>>> 

另外,如何调整轴限制?你知道吗


Tags: 数据代码intestnpcmpltfile
2条回答

scatter函数接受2个关键字参数,而不是行中传入的3个关键字参数:

pareto = plt.scatter(x,y,z, cmap=cm,s=ms)

如果你需要在三维空间中绘图,你可以查看mplot3d。你知道吗

要调整轴限制,可以使用:

plt.xlim(x_low, x_high)
plt.ylim(y_low, y_high)

你差点就成功了。您只需要指定颜色属于z数组,因为scatter绘图不需要第三个值。只需在代码中指定c=z和good to go。你知道吗

cm = plt.cm.get_cmap('YlOrRd')
x, y, z = np.loadtxt('test.txt', unpack=True) 
ms=45
pareto = plt.scatter(x,y,c=z, cmap=cm,s=ms) #change to c=z
cbar = plt.colorbar()
cbar.set_label('test')
plt.savefig('pics/test/test.png', dpi=300)

正如Jacob所指出的,使用plt.xlim()plt.ylim()来调整限制。你知道吗

相关问题 更多 >