我可以用以下代码从CSV文件中绘制数据:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('test0.csv',delimiter='; ', engine='python')
df.plot(x='Column1', y='Column3')
plt.show()但我不明白一件事。plt.show()是如何知道df的?在某个地方,我会更有意义地看到这样一种表达:
plt = something(df)我得提一下我只是在学Python。
发布于 2016-10-08 12:29:36
发布于 2016-10-08 12:47:15
Matplotlib有两个“接口”:一个Matlab风格接口和一个面向对象接口。
使用Matlab风格的界面进行绘图如下所示:
import matplotlib.pyplot as plt
plt.plot(x, y)
plt.show()对plt.plot的调用隐式地创建要绘制的图形和轴。对plt.show的调用显示了所有的数字。
熊猫支持Matlab风格的界面,在调用df.plot(x='Column1', y='Column3')时隐式地为您创建一个图形和轴。
熊猫还可以使用更灵活的面向对象的界面,在这种情况下,代码如下所示:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('test0.csv',delimiter='; ', engine='python')
fig, ax = plt.subplots()
df.plot(ax=ax, x='Column1', y='Column3')
plt.show()在这里,轴ax是显式创建的,并传递给df.plot,然后df.plot调用遮罩下的ax.plot。
面向对象的接口很有用的一种情况是,当您希望使用df.plot不止一次时,同时仍然使用相同的轴:
fig, ax = plt.subplots()
df.plot(ax=ax, x='Column1', y='Column3')
df2.plot(ax=ax, x='Column2', y='Column4')
plt.show()发布于 2016-10-08 12:23:17
根据api.html#matplotlib.pyplot.show,plt.show()本身不知道数据,您需要将数据作为参数传递。
根据使用http://pandas.pydata.org/pandas-docs/stable/visualization.html#basic-plotting-plot,你看到的应该是熊猫图书馆的地块。
希望这能解决你的问题。
https://stackoverflow.com/questions/39932230
复制相似问题