仅水平网格(在python中使用pandas plot + pyplot)

时间:2019-02-15 17:08:41

标签: python pandas matplotlib

我只想使用pandas图获得水平网格。

pandas的集成参数只有grid=Truegrid=False,因此我尝试使用matplotlib pyplot更改轴参数,特别是使用以下代码:

import pandas as pd
import matplotlib.pyplot as plt
fig = plt.figure()
ax2 = plt.subplot()
ax2.grid(axis='x')
df.plot(kind='bar',ax=ax2, fontsize=10, sort_columns=True)
plt.show(fig)

但是我没有水平或垂直的网格。熊猫会覆盖轴吗?还是我做错了什么?

1 个答案:

答案 0 :(得分:5)

在绘制DataFrame后,尝试设置网格。另外,要获取水平网格,您需要使用ax2.grid(axis='y')。以下是使用示例DataFrame的答案。

我已经通过使用ax2重新构造了定义subplots的方式。

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'lab':['A', 'B', 'C'], 'val':[10, 30, 20]})

fig, ax2 = plt.subplots()

df.plot(kind='bar',ax=ax2, fontsize=10, sort_columns=True)
ax2.grid(axis='y')
plt.show()

或者,您还可以执行以下操作:直接使用从DataFrame图返回的轴对象打开水平网格

fig = plt.figure()

ax2 = df.plot(kind='bar', fontsize=10, sort_columns=True)
ax2.grid(axis='y')

enter image description here