我有一个温度文件,有多年的温度记录,格式如下:
2012-04-12,16:13:09,20.6
2012-04-12,17:13:09,20.9
2012-04-12,18:13:09,20.6
2007-05-12,19:13:09,5.4
2007-05-12,20:13:09,20.6
2007-05-12,20:13:09,20.6
2005-08-11,11:13:09,20.6
2005-08-11,11:13:09,17.5
2005-08-13,07:13:09,20.6
2006-04-13,01:13:09,20.6
Run Code Online (Sandbox Code Playgroud)
每年都有不同的数字,记录的时间,所以大熊猫的datetimeindices都是不同的.
我想在同一图中绘制不同年份的数据进行比较.X轴是1月到12月,Y轴是温度.我应该怎么做呢?
我有两个列表如下:
latt=[42.0,41.978567980875397,41.96622693388357,41.963791391892457,...,41.972407378075879]
lont=[-66.706920989908909,-66.703116557977069,-66.707351643324543,...-66.718218142021925]
Run Code Online (Sandbox Code Playgroud)
现在我想将它绘制成一条线,将每个10个'latt'和'lont'记录分开作为一个时期并给它一个独特的颜色.我该怎么办?
我使用pandas'to_html生成输出文件,当数据写入文件时,它们在小数点后面有很多位数.pandas的to_html float_format方法可以限制数字,但是当我使用'float_format'时,如下所示:
DataFormat.to_html(header=True,index=False,na_rep='NaN',float_format='%10.2f')
Run Code Online (Sandbox Code Playgroud)
它引发了一个例外:
typeError: 'str' object is not callable
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题呢?
我在下面画一个箭头,虽然我认为它有点大.我怎样才能让它变得更薄更小?谢谢
for i in range(len(x)):
plt.annotate(df.index[i],xy=(x[i],y[i]),xytext=(x[i]+1.31,y[i]-0.55),arrowprops=dict(facecolor='blue', shrink=0.1))
Run Code Online (Sandbox Code Playgroud) 绘制图形后,我得到一个图形图例如下:
DataFrame1.plot(legend=False)
patch,labels=ax.get_legend_handels_labels()
DateFrame1.legend(loc='best')
plt.show()
Run Code Online (Sandbox Code Playgroud)
如何删除(Temp,2005)中的'Temp',让我们成为2005年?
DataFrame1有三个键:Month,Year,Temp.
我有一个包含几年温度记录的数据文件,我用Pandas读入数据文件,现在它变成了一个DataFrame:
In [86]: tso
Out[86]:
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 28170 entries, 2005-05-20 13:28:42.239999+00:00 to 2012-12-05 13:26:49.919999+00:00
Data columns:
Day 28170 non-null values
Month 28170 non-null values
Year 28170 non-null values
Temp 28170 non-null values
dtypes: float64(1), int64(3)
Run Code Online (Sandbox Code Playgroud)
然后我根据'月'和'年'列绘制它们:
ax=tso.groupby(['Month','Year']).mean().unstack().plot(linewidth=3,legend=False)
patches,labels=ax.get_legend_handles_labels()
ax.legend(unique(tso['Year'].values),loc='best')
plt.show()
Run Code Online (Sandbox Code Playgroud)

现在我想要去年的温度用粗线绘制.我该怎么办?有什么简单的解决方案吗?谢谢!
我有一个DateFrame'tsod',现在我把它转换为html:
tsod.to_html()
Run Code Online (Sandbox Code Playgroud)
如何将其保存为文件?最好保存为'.html'文件.
有一个DataFrame'modtso':
In [4]: modtso
Out[4]:
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 74006 entries, 2002-07-27 15:00:00 to 2010-12-31 22:58:08
Data columns:
0 74006 non-null values
dtypes: float32(1)
In [5]: modtso[1:10]
Out[5]:
0
2002-07-27 16:01:53 9.336845
2002-07-27 16:58:08 9.337487
2002-07-27 18:00:00 9.343308
2002-07-27 19:01:53 9.364368
2002-07-27 19:58:08 9.389445
...
Run Code Online (Sandbox Code Playgroud)
现在我想重新取样如下:
a=modtso.resample('D',how='std')
Run Code Online (Sandbox Code Playgroud)
它会引发异常:
ValueError: Buffer dtype mismatch, expected 'float64_t' but got 'float'
Run Code Online (Sandbox Code Playgroud)
有什么问题?我该怎么解决?谢谢
我按底图绘制了一张地图,如下所示:
plt.figure(figsize=(7,6))
m = Basemap(projection='cyl',llcrnrlat=40.125,urcrnrlat=44.625,\
llcrnrlon=-71.875,urcrnrlon=-66.375,resolution='h')
m.drawparallels(np.arange(int(40.125),int(44.625),1),labels=[1,0,0,0])
m.drawmeridians(np.arange(int(-71.875),int(-66.375),1),labels=[0,0,0,1])
m.drawcoastlines()
m.fillcontinents(color='grey')
m.drawmapboundary()
Run Code Online (Sandbox Code Playgroud)
图片如下:

如何在保持轴上的刻度线的同时删除实际的纬度/经度线?
我绘制如下图:
plt.plot(lon,lat,'ro-')
plt.show()
Run Code Online (Sandbox Code Playgroud)

但线条没有关闭.如何将它们作为多边形关闭?谢谢
我想定义一个可以省略输入参数或具有默认值的函数.
我有这个功能:
def nearxy(x,y,x0,y0,z):
distance=[]
for i in range(0,len(x)):
distance.append(abs(math.sqrt((x[i]-x0)**2+(y[i]-y0)**2)))
...
return min(distance)
Run Code Online (Sandbox Code Playgroud)
我想要make x0并y0有一个默认值,z如果我没有值,则make 可选z.
我怎样才能做到这一点?谢谢.