python - 根据 pandas 数据框中的条件,使用不同标记在 basemap 上绘制点

标签 python pandas matplotlib matplotlib-basemap

我正在使用 matplotlib basemap 根据 pandas 数据框中的数据绘制轨迹。

简单地绘制如下经纬度数据即可正常工作:

map = Basemap(projection='stere',lon_0=lon,lat_0=lat, llcrnrlon=-65, llcrnrlat=55, urcrnrlon=50 , urcrnrlat=75)

map.drawcountries()
map.bluemarble()

#Place marker at Kangerlussuaq
x,y = map(lon, lat)
map.plot(x, y, 'bo', markersize=10) 
plt.text(x, y, ' Kangerlussuaq', fontsize=12)

#Plot trajectory
map.plot(datacopy.long.tolist(), 
            datacopy.lat.tolist(), 
            'r-', 
            latlon=True)

但是,我希望根据每个纬度/经度测量的环境温度用不同的标记绘制部分轨迹,但以下代码给出了错误:

ValueError:系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

if datacopy['Ambient temp']<280:
map.plot(datacopy.long.tolist(), 
        datacopy.lat.tolist(), 
        'r-', 
        latlon=True)
else: 
    map.plot(datacopy.long.tolist(), 
            datacopy.lat.tolist(), 
            'b-', 
            latlon=True)

此错误是由于数据位于 pandas 数据框中而导致的吗?有解决方法吗?

谢谢

最佳答案

首先,您的条件系列可能是空的。你必须检查一下。

要绘制条件序列,请看这个示例:

import pandas as pd
import numpy as np
import matplotlib.pylab as plt

# Create a dataframe
df = pd.DataFrame( {'lat':[1,2,3,4,5], 'long':[1,2,3,4,5],  'T': [42, 52, 36, 24, 70]})
print (df)

plt.figure(figsize = (5, 5))

# selection condition
df1 = df[(df['T'] < 50)]
# ~ means not
df2 = df[~(df['T'] < 50)]
print(df2)
print(df1)
# plot
plt.plot(df1.long, df1.lat, 'b+')
ax = plt.gca()
ax.plot(df2.long, df2.lat, 'r*')

plt.show()

enter image description here

测试输出:

    T  lat  long
0  42    1     1
1  52    2     2
2  36    3     3
3  24    4     4
4  70    5     5
    T  lat  long
1  52    2     2
4  70    5     5
    T  lat  long
0  42    1     1
2  36    3     3
3  24    4     4

您也不需要将系列转换为列表。

关于python - 根据 pandas 数据框中的条件,使用不同标记在 basemap 上绘制点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50254813/

相关文章:

python - 获取文本文件中列出的所有文件的时间戳

python - 将两个绘图生成的表格彼此相邻放置

python - 计算 Pandas 条件行中的值频率

python - 根据每个列类型获取数据框的均值和模式

python - 从 matplotlib 中的点坐标绘制 3D 表面

python - 如何模拟 ZipFile 构造函数?

python - 在 NumPy 中将字典转换为数组

python-3.x - 如何按列分组并标准化?

python - Xaxis 标签与数据点不匹配 - Pandas/Matplotlib

Python matplotlib : position colorbar in data coordinates