簡體   English   中英

如何使用cbar在Python中創建散點圖

[英]How to create a scatter plot in Python with cbar

我正在嘗試創建一個散點圖,其中包含我存儲在.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)

上面的代碼生成以下散點圖:

在此輸入圖像描述

我已將上述簡單代碼改為我的數據:

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'
>>> 

另外,我怎樣才能調整軸限制?

scatter函數接收2個關鍵字參數,而不是您在該行中傳入的3個:

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

如果您需要在3D尺寸中繪圖,您可以查看mplot3d

要調整軸限制,您可以使用:

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

你幾乎擁有它。 您只需要指定顏色屬於z數組,因為scatter不需要第3個值。 只需在代碼中指定c=z即可。

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()來調整限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM