我有一个数据框
df =
Magnitude,Lon,Lat,Depth
3.5 33.3 76.2 22
3.5 33.1 75.9 34
2.5 30.5 79.6 25
5.5 30.4 79.5 40
5.1 32 78.8 58
4.5 31.5 74 NaN
2.1 33.9 74.7 64
5.1 30.8 79.1 33
1.1 32.6 78.2 78
NaN 33.3 76 36
5.2 32.7 79.5 36
NaN 33.6 78.6 NaN
我想在X轴上放置Lon在Y轴上绘制散点图,并根据Magnitude中的值范围来绘制具有不同大小的散点;
size =1 : Magnitude<2,size =1.5 : 2<Magnitude<3,size =2 : 3<Magnitude<4,size =2.5 : Magnitude>4.
,并根据Depth中的值的范围使用不同的颜色;
color =red : Depth<30,color =blue : 30<Depth<40,color =black : 40<Depth<60,color =yellow : Depth>60
我正在考虑通过定义大小和颜色的字典来解决此问题。 (只是给出想法;需要正确的语法)
更像
def magnitude_size(df.Magnitude):
if df.Magnitude < 2 :
return 1
if df.Magnitude > 2 and df.Magnitude < 3 :
return 1.5
if df.Magnitude > 3 and df.Magnitude < 4 :
return 2
if df.Magnitude > 4 :
return 2.5
def depth_color(df.Depth):
if df.Depth < 30 :
return 'red'
if df.Depth > 30 and df.Depth < 40 :
return 'blue'
if df.Depth > 40 and df.Depth < 60 :
return 'black'
if df.Depth > 60 :
return 'yellow'
di = {
'size': magnitude_size(df.Magnitude),'color' : depth_color(df.Depth)
}
plt.scatter(df.Lon,df.Lat,c=di['color'],s=di['size'])
plt.show()
如果“震级”中的NaN值给出了不同的散点符号(),如果“深度”中的NaN值给出了不同的颜色(绿色)*
需要帮助