Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在主网格线下方绘制辅助网格线_Python_Matplotlib - Fatal编程技术网

Python 在主网格线下方绘制辅助网格线

Python 在主网格线下方绘制辅助网格线,python,matplotlib,Python,Matplotlib,我正在尝试使用matplotlib绘制网格。网格的顺序应位于绘图中所有其他线的后面。到目前为止,我的问题是 次要网格线始终绘制在主要网格线之前,即 import matplotlib.pyplot as plt import numpy as np from matplotlib.ticker import MultipleLocator, FormatStrFormatter plt.rc('text', usetex=True) plt.rc('font', family='serif')

我正在尝试使用matplotlib绘制网格。网格的顺序应位于绘图中所有其他线的后面。到目前为止,我的问题是 次要网格线始终绘制在主要网格线之前,即

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import MultipleLocator, FormatStrFormatter

plt.rc('text', usetex=True)
plt.rc('font', family='serif')

f = plt.figure(figsize=(4,4))
ax = f.add_subplot(111)

ax.xaxis.set_minor_locator(MultipleLocator(1))
ax.xaxis.set_major_locator(MultipleLocator(10))
ax.yaxis.set_minor_locator(MultipleLocator(1))
ax.yaxis.set_major_locator(MultipleLocator(10))

majc ="#3182bd"
minc ="#deebf7"

ax.xaxis.grid(True,'minor',color=minc, ls='-', lw=0.2)
ax.yaxis.grid(True,'minor',color=minc, ls='-', lw=0.2)
ax.xaxis.grid(True,'major',color=majc, ls='-')
ax.yaxis.grid(True,'major',color=majc,ls ='-')
ax.set_axisbelow(True)

x = np.linspace(0, 30, 100)
ax.plot(x, x, 'r-', lw=0.7)

[line.set_zorder(3) for line in ax.lines]
plt.savefig('test.pdf')
有什么建议吗?多谢各位

编辑:特写示例

更具体地说,它看起来像是按照那个顺序绘制垂直主视图、垂直副视图、水平主视图、水平副视图和绘制线。可能对matplotlib基础知识有相当深入的了解

对于您正在使用的颜色,您可以通过alpha(而不是RGB)来区分大调和小调。更改示例的两行:

ax.xaxis.grid(True,'minor',color=majc, alpha=0.2, ls='-', lw=0.2)
ax.yaxis.grid(True,'minor',color=majc, alpha=0.2, ls='-', lw=0.2)
结果:


这种方法的问题在于pdf不支持透明度,或者我错了?您回复的thx已保存为pdf,这就是我得到的结果(实际上只更改了我显示的两行)。如果pdf不能处理透明度,“展平”算法可以正确处理颜色。看起来你是对的。我认为您的回答是一个很好的解决方法,但是如果知道maplotlib api中出现了什么问题以及如何修复它,那就太好了;ax.xaxis.grid的docstring表示“kwargs用于设置网格的线属性”,但我无法使用我尝试过的任何一组zorder值在顶部/第二秒绘制垂直网格线。