在Python中重新创建R绘图-根据第三个值的范围更改颜色
我试图用Python重新创建下面的绘图,但我无法根据第三个值“密度”的特定范围来确定点的颜色 这就是我在Python中的全部内容:在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,
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'])
您能提供一个帮助吗?