如何在Pandas中定义绘制图形的范围?

时间:2014-12-16 09:48:13

标签: python pandas

我现在正试图通过Pandas绘制数据帧。一切都很好,但我不知道如何定义y轴和x轴刻度。例如,在下文中,我想用y轴刻度而不是0.0到0.7来显示从1.0到0.0的图形。

enter image description here

以上是上图的代码。

In [90]: df
Out[90]: 
             history       lit   science    social  accuracy
2014-11-18  0.680851  0.634146  0.452381  0.595745      0.01
2014-12-10  0.680851  0.634146  0.452381  0.595745      0.01

In [91]: df.plot()
Out[91]: <matplotlib.axes._subplots.AxesSubplot at 0x7f9f3e7c9410>

此外,我想为每个点显示标记'x'。例如,DataFrame df有两行,所以我想为图表上的每个点标记'x'或'o'。

更新

在应用了Ffisegydd的优秀解决方案之后,我得到了以下我想要的图表。

In [6]: df.plot(ylim=(0,1), marker='x')

enter image description here

1 个答案:

答案 0 :(得分:2)

pandas.DataFrame.plot()将返回matplotlib轴对象。这可用于使用ax.set_ylim()修改y限制之类的内容。

或者,当您调用df.plot()时,您可以传递样式的参数,其中一个参数可以是ylim=(minimum_value, maximum_value),这意味着您在绘图后不必手动使用ax.set_ylim()

您还可以传递传递给matplotlib绘图例程的额外关键字参数,您可以使用此参数将标记设置为x marker='x'

下面给出了一个玩具示例,其中ylim已设置为(0,5),而x调用中的标记为df.plot()

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame(data={'x':[0,1,2,3,4], 'y':[0,0.5,1,1.5,2]})

ax = df.plot(ylim=(0,5), marker='x')

plt.show()

Example plot