2014-03-25 74 views
1

我已經從我使用的數據和plt.plot()創建了一個散點圖,並且想知道是否有一種簡單的方法來根據顏色點在x軸上?如果它們位於x0和x1之間使它們變成綠色,則x1和x2會使它們變成藍色等等。任何幫助?乾杯Matplotlib不同的顏色點取決於x的範圍

回答

3

你可以使用plt.scatter

import numpy as np 
import matplotlib.pyplot as plt 
import seaborn as sns 
sns.set_style("white") 

x, y = np.random.multivariate_normal([0, 0], [(1, .5), (.5, 1)], 200).T 
c = np.where(x < 0, "#27ae60", "#2980b9") 
plt.scatter(x, y, 30, c) 
sns.despine() 

enter image description here

+0

我不明白如何適用於我的情況。我錯了,它是plt.semilogx()我用來繪製圖。 – user3361147

+0

如果您致力於使用'plt.plot'(其中'semilogx'在幕後使用),則必須分別存儲數據並繪製每個垃圾箱。使用'scatter',您可以爲每個點傳遞一組顏色。對於你的情況,你可以在用'scatter'繪圖之前做'ax.set_xscale(「log」)'。 – mwaskom

+0

我還在爲此苦苦掙扎。散點圖()中的30是什麼?我需要「#27ae60」,「#2980b9」這些位,還是我可以擺脫它們? – user3361147

相關問題