我要做的是使用matplotlib,底图,python等在地图上绘制特定风暴的纬度和经度值.我的问题是我正在尝试提取风暴的纬度,经度和名称我继续在第41-44行之间出错,我试图将列提取到列表中.请有人帮我解决这个问题.提前致谢.
这是文件的样子:
1957,AUDREY,HU, 21.6N, 93.3W
1957,AUDREY,HU,22.0N, 93.4W
1957,AUDREY,HU,22.6N, 93.5W
1957,AUDREY,HU,23.2N, 93.6W
Run Code Online (Sandbox Code Playgroud)
我希望列表如下所示:
latitude = [21.6N,22.0N,23.4N]
longitude = [93.3W, 93.5W,93.8W]
name = ["Audrey","Audrey"]
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所拥有的:
data = np.loadtxt('louisianastormb.csv',dtype=np.str,delimiter=',',skiprows=1)
'''print data'''
data = np.loadtxt('louisianastormb.csv',dtype=np.str,delimiter=',',skiprows=0)
f= open('louisianastormb.csv', 'rb')
reader = csv.reader(f, delimiter=',')
header = reader.next()
zipped = zip(*reader)
latitude = zipped[3]
longitude = zipped[4]
names = zipped[1]
x, y = m(longitude, latitude)
Run Code Online (Sandbox Code Playgroud)
这是我收到的最后一条错误消息/追溯:
回溯(最近一次调用最后一次):
文件"/home/darealmzd/lstorms.py",第42行,header = reader.next()
_csv.Error:在不带引号的字段中看到的换行符 - 是否需要以通用换行模式打开文件?
对于我的作业,我应该使用 matplotlib 在地图上绘制 20 次飓风的轨迹。但是,当我运行代码时,出现错误:AssertionError:Grouper and axis must be the same length
这是我的代码:
import numpy as np
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
from PIL import *
fig = plt.figure(figsize=(12,12))
ax = fig.add_axes([0.1,0.1,0.8,0.8])
m = Basemap(llcrnrlon=-100.,llcrnrlat=0.,urcrnrlon=-20.,urcrnrlat=57.,
projection='lcc',lat_1=20.,lat_2=40.,lon_0=-60.,
resolution ='l',area_thresh=1000.)
m.bluemarble()
m.drawcoastlines(linewidth=0.5)
m.drawcountries(linewidth=0.5)
m.drawstates(linewidth=0.5)
# Creates parallels and meridians
m.drawparallels(np.arange(10.,35.,5.),labels=[1,0,0,1])
m.drawmeridians(np.arange(-120.,-80.,5.),labels=[1,0,0,1])
m.drawmapboundary(fill_color='aqua')
# Opens data file
import pandas as pd
name = [ ]
df = pd.read_csv('louisianastormb.csv')
for name, group in df.groupby([name]):
latitude = group.lat.values
longitude = group.lon.values …Run Code Online (Sandbox Code Playgroud) 我有一个文件夹和子文件夹的目录.我要做的是获取文件夹中的子文件夹数量,并使用matplotlib在散点图上绘制它们.我有代码来获取文件的数量,但我如何获得文件夹中的子文件夹数量.这可能有一个简单的答案,但我是Python的新手.任何帮助表示赞赏.
这是我到目前为止获得文件数量的代码:
import os
import matplotlib.pyplot as plt
def fcount(path):
count1 = 0
for f in os.listdir(path):
if os.path.isfile(os.path.join(path, f)):
count1 += 1
return count1
path = "/Desktop/lay"
print fcount(path)
Run Code Online (Sandbox Code Playgroud) 很抱歉,如果这个问题很简单,我就是使用Python和Basemap的新手.无论如何,我试图在地图上绘制20个飓风的路径(图).地图本身和传说完美呈现,但飓风的路径却没有.此外,我没有得到任何追溯消息,但我想我已经知道我的问题可能在哪里.有人可以告诉我哪里出错了.
这是csv文件的示例:
Year, Name, Type, Latitude, Longitude
1957,AUDREY,HU, 21.6, 93.3
1957,AUDREY,HU,22.0, 93.4
1957,AUDREY,HU,22.6, 93.5
1969,AUDREY,HU,28.2,99.6
1957,AUDREY,HU,26.5,93.8
1957,AUDREY,HU,27.9,93.8
1957,AUDREY,HU,29.3,95
1957,AUDREY,HU,27.9,93.8
1957,AUDREY,HU,29.3,93.8
1957,AUDREY,HU,30.7,93.5
1969,CAMILLE,HU, 21.6,99.3
1969,CAMILLE,HU,22.0,98.4
1969,CAMILLE,HU,22.6,90.5
1969,CAMILLE,HU,23.2,93.6
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止的代码:
import numpy as np
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import csv, os, scipy
import pandas
from PIL import *
data = np.loadtxt('louisianastormb.csv',dtype=np.str,delimiter=',',skiprows=1)
'''print data'''
fig = plt.figure(figsize=(12,12))
ax = fig.add_axes([0.1,0.1,0.8,0.8])
m = Basemap(llcrnrlon=-100.,llcrnrlat=0.,urcrnrlon=-20.,urcrnrlat=57.,
projection='lcc',lat_1=20.,lat_2=40.,lon_0=-60.,
resolution ='l',area_thresh=1000.)
m.bluemarble()
m.drawcoastlines(linewidth=0.5)
m.drawcountries(linewidth=0.5)
m.drawstates(linewidth=0.5)
# Creates parallels and meridians
m.drawparallels(np.arange(10.,35.,5.),labels=[1,0,0,1])
m.drawmeridians(np.arange(-120.,-80.,5.),labels=[1,0,0,1])
m.drawmapboundary(fill_color='aqua')
color_dict = …Run Code Online (Sandbox Code Playgroud)