Python绘制数据中x值的数量
我有一个巨大的csv数据文件,看起来像这样:Python绘制数据中x值的数量,python,python-3.x,pandas,matplotlib,Python,Python 3.x,Pandas,Matplotlib,我有一个巨大的csv数据文件,看起来像这样: STAID, SOUID, DATE, TX, Q_TX 162,100522,19010101, -31, 0 162,100522,19010102, -13, 0 TX是温度,数据会持续几千行,给你一个想法 每年,我都要画出气温高于25度的天数 import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv("klima
STAID, SOUID, DATE, TX, Q_TX
162,100522,19010101, -31, 0
162,100522,19010102, -13, 0
TX是温度,数据会持续几千行,给你一个想法
每年,我都要画出气温高于25度的天数
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv("klimaat.csv")
zomers = data.index[data["TX"] > 250].tolist()
x_values = []
y_values = []
plt.xlabel("Years")
plt.ylabel("Amount of days with TX > 250")
plt.title("Zomerse Dagen Per Jaar")
plt.plot(x_values, y_values)
# save plot
plt.savefig("zomerse_dagen.png")
X轴应该是1900-2010年之类的年份,y轴应该是当年温度高于250天的天数
我该怎么办我不能完全掌握如何从数据中提取天数。。。。然后在绘图中使用它。您可以使用python标准库中的
datetime
模块来解析日期,尤其是查看函数。然后可以使用datetime.year
属性来聚合数据
在将
OrderedDict.keys()
和OrderedDict.values()
分别指定给x_值
和y_值
之前,您还可以使用来跟踪聚合情况。您可以分别创建数据点,以便于理解。然后使用pandas.pivot_表进行聚合。下面是一个工作示例,可以帮助您继续
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv("klimaat.csv", parse_dates=["DATE"])
data.sort_values("DATE", inplace=True)
data["above_250"] = data.TX > 250
data["year"] = data.apply(lambda x: x["DATE"].year, axis=1).astype("category")
plot_df = pd.pivot_table(data, index="year", values="above_250", aggfunc="sum")
years = plot_df.index
y_pos = np.arange(len(years))
values = plot_df.above_250
plt.bar(y_pos, values, align='center', alpha=0.5)
plt.xticks(y_pos, years)
plt.ylabel("Amount of days with TX > 250")
plt.xlabel("Year")
plt.title("Zomerse Dagen Per Jaar")
plt.show()