Python Matplotlib-动态设置Alpha和颜色
我正在从Matplotlib中的熊猫数据帧绘制散点图。以下是dataframe的外观:Python Matplotlib-动态设置Alpha和颜色,python,python-3.x,pandas,matplotlib,Python,Python 3.x,Pandas,Matplotlib,我正在从Matplotlib中的熊猫数据帧绘制散点图。以下是dataframe的外观: X Y R 0 1 945 1236.334519 0 1 950 212.809352 0 1 950 290.663847 0 1 961 158.156856 下面是我如何绘制数据帧的: ax1.scatter(myDF.X, myDF.Y, s=20, c='red', marker='s', alpha=0.5)
X Y R
0 1 945 1236.334519
0 1 950 212.809352
0 1 950 290.663847
0 1 961 158.156856
下面是我如何绘制数据帧的:
ax1.scatter(myDF.X, myDF.Y, s=20, c='red', marker='s', alpha=0.5)
我的问题是,我想根据R
的值的高低来更改标记的绘制方式
示例:如果R
大于1000(如我示例的第一行所示),color
应该是黄色而不是红色,alpha
应该是0.8而不是0.5。如果R
小于1000,color
应为蓝色,alpha
应为0.4,依此类推
有没有办法做到这一点,或者我只能对不同的数据使用不同的数据帧?提前谢谢 您可以执行自定义RGBA颜色阵列:
colors = [(1,1,0,0.8) if x>1000 else (1,0,0,0.4) for x in df.R]
plt.scatter(df.X,df.Y, c=colors)
输出:
这是一个非常好的解决方案。如果我只想添加2个以上的条件,该怎么办?我可以使用一系列elif吗?试试
np。选择。如果这不起作用,一系列的If…elif
也不错。非常感谢!它将如何与np.select一起工作?给我5分钟,我接受你的回答!您的R
列是字符串类型。将其更改为带有pd的数值。将其更改为\u numeric
或aType(float)
alpha
是元组中4的最后一个数字,例如(1,1,0,0,0.8)
表示R=1、g=1、B=0、alpha=0.8或黄色,表示alpha=0.8。