Osm*_*hop 83 python matplotlib pandas
我希望在我的绘图上同时获得水平和垂直网格线,但默认情况下只显示水平网格线.我pandas.DataFrame在python中使用一个sql查询来生成一个带有x轴日期的线图.我不确定为什么他们没有出现在日期,我试图寻找答案,但找不到.
我用来绘制图形的所有内容都是下面的简单代码.
data.plot()
grid('on')
Run Code Online (Sandbox Code Playgroud)
data是DataFrame,它包含sql查询中的日期和数据.
我也试过添加下面的代码,但我仍然得到相同的输出没有垂直网格线.
ax = plt.axes()
ax.yaxis.grid() # horizontal lines
ax.xaxis.grid() # vertical lines
Run Code Online (Sandbox Code Playgroud)
有什么建议?

wim*_*wim 90
您可能需要在调用中给出布尔arg,例如使用ax.yaxis.grid(True)而不是ax.yaxis.grid().此外,由于您同时使用它们,因此您可以将两者结合ax.grid使用,而不是对每个维度执行一次.
ax = plt.gca()
ax.grid(True)
Run Code Online (Sandbox Code Playgroud)
那应该是你排除.
小智 48
plt.gca().xaxis.grid(True) 事实证明是我的解决方案
jdh*_*hao 17
根据matplotlib文档,Axes类grid()方法的签名如下:
Axes.grid(b =无,其中'主要',轴='两个',**kwargs)
打开或关闭轴网格.
which可以是"主要"(默认),"次要"或"两者"来控制是否影响主要的刻度网格,次要刻度网格或两者.
axis可以是'both'(默认),'x'或'y'来控制绘制哪组网格线.
因此,为了显示x轴和y轴的网格线,我们可以使用以下代码:
ax = plt.gca()
ax.grid(which='major', axis='both', linestyle='--')
Run Code Online (Sandbox Code Playgroud)
这种方法使我们能够更好地控制网格线的显示内容.
也许这可以解决问题: matplotlib,在绘图上定义网格的大小
ax.grid(True, which='both')
Run Code Online (Sandbox Code Playgroud)
事实是网格正在工作,但在 00:00 只有一个 v-grid,其他没有网格。我遇到了同样的问题,在许多天中,11 月 1 日只有一个网格。
简短回答(阅读下文了解更多信息):
ax.grid(axis='both', which='both')
Run Code Online (Sandbox Code Playgroud)
你所做的是正确的,它应该可以工作。
但是,由于您示例中的X轴是DateTime轴,因此主要刻度线(最有可能)仅出现在 X 轴的两端。其他可见的刻度线是次要刻度线。
ax.grid()默认情况下,该方法在主要刻度线上绘制网格线。因此,您的情节中没有任何内容。
使用下面的代码突出显示刻度线。Majors 为蓝色,Minor 为红色。
ax.tick_params(which='both', width=3)
ax.tick_params(which='major', length=20, color='b')
ax.tick_params(which='minor', length=10, color='r')
Run Code Online (Sandbox Code Playgroud)
现在要强制网格线也出现在次要刻度线上,请将 传递which='minor'给方法:
ax.grid(b=True, which='minor', axis='x', color='#000000', linestyle='--')
Run Code Online (Sandbox Code Playgroud)
或简单地用于which='both'绘制主要和次要网格线。这是一条更优雅的网格线:
ax.grid(b=True, which='minor', axis='both', color='#888888', linestyle='--')
ax.grid(b=True, which='major', axis='both', color='#000000', linestyle='-')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
107730 次 |
| 最近记录: |