Matplotlib 散点图根据列表中的值更改颜色
Matplotlib Scatter plot change color based on value on list
我是 matplotlib 的新手,我想知道如何根据列表中的值更改散点图上点的颜色。
事实上,我有一个要绘制的二维数组和一个包含相同行数的列表,对于每个点,我们要使用的颜色。
#Example
data = np.array([4.29488806,-5.34487081],
[3.63116248,-2.48616998],
[-0.56023222,-5.89586997],
[-0.51538502,-2.62569576],
[-4.08561754,-4.2870525 ],
[-0.80869722,10.12529582])
colors = ['red','red','red','blue','red','blue']
ax1.plot(data[:,0],data[:,1],'o',picker=True)
如何设置颜色参数以适合我的颜色列表?
您必须使用所需颜色列表设置 plt.scatter
的参数 c
:
import matplotlib.pylab as plt
import numpy as np
data = np.array([[4.29488806,-5.34487081],
[3.63116248,-2.48616998],
[-0.56023222,-5.89586997],
[-0.51538502,-2.62569576],
[-4.08561754,-4.2870525 ],
[-0.80869722,10.12529582]])
colors = ['red','red','red','blue','red','blue']
plt.scatter(data[:,0],data[:,1],marker='o',c = colors)
plt.show()
使用线图plt.plot()
plt.plot()
只允许一种颜色。因此,您可以简单地遍历数据和颜色并单独绘制每个点。
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
data = np.array([[4.29488806,-5.34487081],
[3.63116248,-2.48616998],
[-0.56023222,-5.89586997],
[-0.51538502,-2.62569576],
[-4.08561754,-4.2870525 ],
[-0.80869722,10.12529582]])
colors = ['red','red','red','blue','red','blue']
for xy, color in zip(data, colors):
ax.plot(xy[0],xy[1],'o',color=color, picker=True)
plt.show()
使用散点图plt.scatter()
要生成散点图,请使用 scatter
。这有一个参数 c
,它允许通过多种方式设置散点的颜色。
(a) 一种简单的方法是提供颜色列表。
colors = ['red','red','red','blue','red','blue']
ax.scatter(data[:,0],data[:,1],c=colors,marker="o", picker=True)
(b) 另一种选择是提供数据列表并使用颜色映射将数据映射到颜色
colors = [0,0,0,1,0,1] #red is 0, blue is 1
ax.scatter(data[:,0],data[:,1],c=colors,marker="o", cmap="bwr_r")
我是 matplotlib 的新手,我想知道如何根据列表中的值更改散点图上点的颜色。
事实上,我有一个要绘制的二维数组和一个包含相同行数的列表,对于每个点,我们要使用的颜色。
#Example
data = np.array([4.29488806,-5.34487081],
[3.63116248,-2.48616998],
[-0.56023222,-5.89586997],
[-0.51538502,-2.62569576],
[-4.08561754,-4.2870525 ],
[-0.80869722,10.12529582])
colors = ['red','red','red','blue','red','blue']
ax1.plot(data[:,0],data[:,1],'o',picker=True)
如何设置颜色参数以适合我的颜色列表?
您必须使用所需颜色列表设置 plt.scatter
的参数 c
:
import matplotlib.pylab as plt
import numpy as np
data = np.array([[4.29488806,-5.34487081],
[3.63116248,-2.48616998],
[-0.56023222,-5.89586997],
[-0.51538502,-2.62569576],
[-4.08561754,-4.2870525 ],
[-0.80869722,10.12529582]])
colors = ['red','red','red','blue','red','blue']
plt.scatter(data[:,0],data[:,1],marker='o',c = colors)
plt.show()
使用线图plt.plot()
plt.plot()
只允许一种颜色。因此,您可以简单地遍历数据和颜色并单独绘制每个点。
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
data = np.array([[4.29488806,-5.34487081],
[3.63116248,-2.48616998],
[-0.56023222,-5.89586997],
[-0.51538502,-2.62569576],
[-4.08561754,-4.2870525 ],
[-0.80869722,10.12529582]])
colors = ['red','red','red','blue','red','blue']
for xy, color in zip(data, colors):
ax.plot(xy[0],xy[1],'o',color=color, picker=True)
plt.show()
使用散点图plt.scatter()
要生成散点图,请使用 scatter
。这有一个参数 c
,它允许通过多种方式设置散点的颜色。
(a) 一种简单的方法是提供颜色列表。
colors = ['red','red','red','blue','red','blue']
ax.scatter(data[:,0],data[:,1],c=colors,marker="o", picker=True)
(b) 另一种选择是提供数据列表并使用颜色映射将数据映射到颜色
colors = [0,0,0,1,0,1] #red is 0, blue is 1
ax.scatter(data[:,0],data[:,1],c=colors,marker="o", cmap="bwr_r")