指向电子表格的链接:https://docs.google.com/spreadsheets/d/1c2hItirdrnvz2emJ4peJHaWrQlzahoHeVqetgHHAXvI/edit?usp=sharing
我是Python的新手,因为我喜欢统计和计算机编程,所以我非常渴望学习它。任何帮助将不胜感激!
我使用了matploylib和numpy,但不知道如何将此电子表格绘制为折线图。
答案 0 :(得分:4)
如果数据采用通用的csv(逗号可分离值)格式,则可以轻松将其读入python。 (这里我通过File / Download as /逗号分隔值从问题中的链接下载文件。
然后,您可以使用pandas.read_csv()
读入pandas中的数据。这会创建一个DataFrame
。通常,pandas会自动理解第一行是列名。然后,您可以通过名称访问Dataframe中的列。
使用DataFrame.plot(x,y)
方法可以轻松执行绘图,其中x和y可以只是要绘制的列名。
import pandas as pd
import matplotlib.pyplot as plt
# reading in the dataframe from the question text
df = pd.read_csv("data/1880-2016 Temperature Data Celc.csv")
# make Date a true Datetime
df["Year"] = pd.to_datetime(df["Year"], format="%Y")
# plot dataframe
ax = df.plot("Year", "Temperature in C")
ax.figure.autofmt_xdate()
plt.show()
如果需要散点图,请使用
df.plot( x="Year", y="Temperature in C", marker="o", linestyle="")
同样可以用numpy完成。读取数据与numpy.loadtxt
一起使用,其中必须提供有关数据的更多信息。例如。展开第一行并使用逗号作为分隔符。可以使用pyplot pyplot.plot(year, temp)
绘制解压缩的列。
import numpy as np
import matplotlib.pyplot as plt
# reading in the data
year, temp = np.loadtxt("data/1880-2016 Temperature Data Celc.csv",
skiprows=1, unpack=True, delimiter=",")
#plotting with pyplot
plt.plot(year, temp, label="Temperature in C")
plt.xlabel("Year")
plt.ylabel("Temperature in C")
plt.legend()
plt.gcf().autofmt_xdate()
plt.show()
结果看起来和pandas情况大致相同(因为pandas只是在内部使用matplotlib)。
如果想要一个散点图,有两个选项:
plt.plot(year, temp, marker="o", ls="", label="Temperature in C")
或
plt.scatter(year, temp, label="Temperature in C")