来自 csv 文件:将第一列的 unix 时间戳转换为年份并创建图表
from csv file :Convert unix timestamp of first column into year and create a graph
我正在尝试从 csv 文件创建绘图。在csv文件中,第一列是时间戳,第二列到第六列是不同的一方。我想创建一个图表,其中 x 轴是年份(即 2004 年),并用 y 轴上各方的百分比值绘制图表。
csv 文件如下所示:
date,CSU/CDU,SPD,Gruene,FDP,Linke
891468000.0,34,44,6,5,6
891986400.0,34,44,6,5,6
892677600.0,35,43,6,5,5
894405600.0,32,46,6,6,5
895010400.0,33,46,5,5,5
我试过下面的代码。
import numpy as np
import matplotlib.pyplot as plt
with open('polldata.csv') as f:
names = f.readline().strip().split(',')
data = np.loadtxt(f, delimiter=',')
cols = data.shape[1]
for n in range (1,cols):
plt.plot(data[:,0],data[:,n],label=names[n])
plt.xlabel('year',fontsize=14)
plt.ylabel('parties',fontsize=14)
plt.show()
从我的 csv 文件的第一列,我想将该时间戳转换为年份。另外,我需要在条形图中显示,以便可以轻松识别颜色区分方。
我希望图表看起来与下页中的第 5 个相似
(https://moderndata.plot.ly/elections-analysis-in-r-python-and-ggplot2-9-charts-from-4-countries/)
提前致谢!
您可以使用 pandas 中的 csv reader。文档在这里:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html
看起来像这样:
将 pandas 导入为 pd
import matplotlib.pyplot as plt
import datetime
df = pd.read_csv("polldata.csv", delimiter=',')
df['date'] = df['date'].apply(lambda ts: datetime.datetime.utcfromtimestamp(ts).strftime('%Y'))
print(df)
ols = df.columns
for n in range (len(cols)):
plt.plot(df,label=cols[n])
plt.xlabel('year',fontsize=14)
plt.ylabel('parties',fontsize=14)
plt.show()
它将打印:
date CSU/CDU SPD Gruene FDP Linke
0 1998 34 44 6 5 6
1 1998 34 44 6 5 6
2 1998 35 43 6 5 5
3 1998 32 46 6 6 5
4 1998 33 46 5 5 5
这让你开始了吗?
我正在尝试从 csv 文件创建绘图。在csv文件中,第一列是时间戳,第二列到第六列是不同的一方。我想创建一个图表,其中 x 轴是年份(即 2004 年),并用 y 轴上各方的百分比值绘制图表。
csv 文件如下所示:
date,CSU/CDU,SPD,Gruene,FDP,Linke
891468000.0,34,44,6,5,6
891986400.0,34,44,6,5,6
892677600.0,35,43,6,5,5
894405600.0,32,46,6,6,5
895010400.0,33,46,5,5,5
我试过下面的代码。
import numpy as np
import matplotlib.pyplot as plt
with open('polldata.csv') as f:
names = f.readline().strip().split(',')
data = np.loadtxt(f, delimiter=',')
cols = data.shape[1]
for n in range (1,cols):
plt.plot(data[:,0],data[:,n],label=names[n])
plt.xlabel('year',fontsize=14)
plt.ylabel('parties',fontsize=14)
plt.show()
从我的 csv 文件的第一列,我想将该时间戳转换为年份。另外,我需要在条形图中显示,以便可以轻松识别颜色区分方。
我希望图表看起来与下页中的第 5 个相似
(https://moderndata.plot.ly/elections-analysis-in-r-python-and-ggplot2-9-charts-from-4-countries/)
提前致谢!
您可以使用 pandas 中的 csv reader。文档在这里:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html
看起来像这样:
将 pandas 导入为 pd
import matplotlib.pyplot as plt
import datetime
df = pd.read_csv("polldata.csv", delimiter=',')
df['date'] = df['date'].apply(lambda ts: datetime.datetime.utcfromtimestamp(ts).strftime('%Y'))
print(df)
ols = df.columns
for n in range (len(cols)):
plt.plot(df,label=cols[n])
plt.xlabel('year',fontsize=14)
plt.ylabel('parties',fontsize=14)
plt.show()
它将打印:
date CSU/CDU SPD Gruene FDP Linke
0 1998 34 44 6 5 6
1 1998 34 44 6 5 6
2 1998 35 43 6 5 5
3 1998 32 46 6 6 5
4 1998 33 46 5 5 5
这让你开始了吗?