在Python中重新创建R绘图-根据第三个值的范围更改颜色

在Python中重新创建R绘图-根据第三个值的范围更改颜色,python,r,matplotlib,Python,R,Matplotlib,我试图用Python重新创建下面的绘图,但我无法根据第三个值“密度”的特定范围来确定点的颜色 这就是我在Python中的全部内容: plt.plot(df.Date, df.SWE_mm, c='b', marker=',', markersize=10, label='SWE') 这是我的R代码: Plot.df <- ggplot(df, aes(Date, SWE_mm)) + geom_point(aes(colour = cut(Density, c(-Inf, 30,

我试图用Python重新创建下面的绘图,但我无法根据第三个值“密度”的特定范围来确定点的颜色

这就是我在Python中的全部内容:

plt.plot(df.Date, df.SWE_mm, c='b', marker=',', markersize=10, label='SWE')
这是我的R代码:

Plot.df <- ggplot(df, aes(Date, SWE_mm)) + 
  geom_point(aes(colour = cut(Density, c(-Inf, 30, 35, 40, Inf))),
             size = 1) +
  scale_color_manual(name = "Density",
                     values = c("(-Inf,30]" = "grey",
                                "(30,35]" = "yellow",
                                "(35,40]" = "orange",
                                "(40, Inf]" = "red"),
                     labels = c("<= 30]", "(30-35]", "(35-40]" ,"> 40"))+
  labs(x = NULL, y = "Central Sierra Snow Lab", colour = NULL, title = NULL)+
  theme_classic()+
  xlim(c(as.POSIXct('2010-10-01 00:00:00', format = "%Y-%m-%d %H:%M:%S"),as.POSIXct('2019-09-30 23:00:00', format = "%Y-%m-%d %H:%M:%S")))+
  coord_cartesian(ylim = c(0,2000))
Plot.df您可以使用熊猫来创建范围,而seaborn的:

导入matplotlib.pyplot作为plt
将numpy作为np导入
作为pd进口熊猫
导入seaborn作为sns
日期=pd.日期范围('2012-01','2020-09',频率='W')
df=pd.DataFrame({'Date':日期,
‘SWE(mm)’:np.abs(np.random.randn(len(dates)).cumsum()*400+1500),
“密度”:np.random.randn(len(dates)).cumsum()+35})
df['Density range']=pd.cut(df['Density'],[-np.inf,30,35,40,np.inf])
sns.散点图(x='Date',y='SWE(mm'),色调='Density range',data=df,
调色板=[“灰色”、“金色”、“橙色”、“深红色”])
利润率(x=0.02)
plt.紧_布局()
plt.show()

PS:对于类似于R示例的标签,将其添加到
pd.cut

df['Density range']=pd.cut(df['Density'],[-np.inf,30,35,40,np.inf],
标签=['≤ 30', '(30-35]', '(35-40]', '> 40'])
您能提供一个帮助吗?