如何使用madplotlib和numpy绘制来自两列Excel Spreadhseet的数据来绘制线图/绘图

时间:2017-03-14 20:32:25

标签: matplotlib

指向电子表格的链接:https://docs.google.com/spreadsheets/d/1c2hItirdrnvz2emJ4peJHaWrQlzahoHeVqetgHHAXvI/edit?usp=sharing

我是Python的新手,因为我喜欢统计和计算机编程,所以我非常渴望学习它。任何帮助将不胜感激!

我使用了matploylib和numpy,但不知道如何将此电子表格绘制为折线图。

1 个答案:

答案 0 :(得分:4)

如果数据采用通用的csv(逗号可分离值)格式,则可以轻松将其读入python。 (这里我通过File / Download as /逗号分隔值从问题中的链接下载文件。

使用pandas和matplotlib

然后,您可以使用pandas.read_csv()读入pandas中的数据。这会创建一个DataFrame。通常,pandas会自动理解第一行是列名。然后,您可以通过名称访问Dataframe中的列。

使用DataFrame.plot(x,y)方法可以轻松执行绘图,其中x和y可以只是要绘制的列名。

enter image description here

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和matplotlib

同样可以用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)。

enter image description here

如果想要一个散点图,有两个选项:

plt.plot(year, temp, marker="o", ls="", label="Temperature in C")

plt.scatter(year, temp, label="Temperature in C")