Matplotlib剧情搞砸了
我有一个相当简单的情节,突然开始发疯后,我改变了后端的东西,为另一个项目使用seaborn错误使得它有必要改变后端正确的结果。Matplotlib剧情搞砸了
但是,我一定做了一些改变了完全绘制地块的方式,因为我的地块的框架现在已经消失了,并且地块的背景也是如此。这是两张图(数据不同,没有“好人”的所有备份),左边是它应该看起来像的样子,右边是当前。
我改变的唯一的事情就是运行命令export MPLBACKEND="module://WXAgg"
。我已经重新启动了我的电脑,甚至重新安装了matplotlib以查看是否可以修复这些问题。但它仍然是一样的。
任何帮助将不胜感激,我相信这仅仅是我的经验不足,使得这种显得如此难以解决......
编辑我继续看看这个,但仍不能找到解决方案。它似乎不是我对后端的修改,但我不知道还有什么可以指责的。我已经将我的脚本恢复到我知道没有问题的旧版本,并且我在另一台计算机上运行了脚本,没有任何问题!
这里是当前凝聚态脚本:
import matplotlib
matplotlib.use('pdf')
import matplotlib.pyplot as plt
def ColumnDensity_withTimeList(inputdirs, species_list, model_data, abundances, times_list, parameter_label, plot_dir, style, single_plots, column_density_limit):
for s in range(0, len(species_list)):
for d in range(0, len(inputdirs)):
patches = []
radii = model_data[d]['radii'][:,0]
f, ax = plt.subplots(1,1)
for t in range(0, len(times_list)):
ax.loglog(radii, abundances, color='black')
ax.grid(b=True, which='major', color='lightgray', linestyle='--')
f.subplots_adjust(right=0.75)
ax2 = ax.twinx()
ax2.semilogy(radii, model_data[d]['temperatures'], 'r--')
ax2.set_ylabel('Temperature [K]', color='r')
for tl in ax2.get_yticklabels():
tl.set_color('r')
ax3 = ax.twinx()
ax3.set_frame_on(True)
ax3.patch.set_visible(False)
ax3.spines['right'].set_position(('axes', 1.2))
ax3.semilogy(radii, model_data[d]['densities'], 'b--')
ax3.set_ylabel('Density [cm-3]', color='b')
for tl in ax3.get_yticklabels():
tl.set_color('b')
plt.savefig(filename + ".pdf")
plt.close()
经过很多问题解决这个问题后,我发现它实际上是导入seaborn
这是我的问题。如果我将它移到使用它的地方,可能会使其他地方不受影响,我的问题就解决了。
为什么进口seaborn
要改变所有的图我不明白,但我现在知道要更加小心,我把我的进口...
至于我可以看到,该地块之间的唯一区别是,在左侧框显示和隐藏在右侧。我不确定seaborn是做什么的,但看起来你已经改变了这些参数的默认设置。 您可以用plt.box('off')/plt.box('on')
明确打开和关闭框。对于图例,您可以传递参数frameon = True/False
。
编辑: 尝试以下方法:找到你的rcparams文件(matplotlib.matplotlib_fname()
)。将以下行粘贴到其中:
axes.facecolor:white
axes.edgecolor:black
legend.frameon: True
重新运行您的脚本。
对不起,我可能不太清楚。我在后台使用了seaborn的不同情节进行了更改。不过,对于这个例子,我使用纯粹的matplotlib.pyplot。我添加了一个新的图表,显示问题可能会更好。问题在于背景是灰色的,并且当我将额外的轴添加到右侧时,出现某些原因出现奇怪的白色线条。 请忽略该数据本身,我没有相同的数据集来再现“原始”工作图。灰色背景,缺失的框架和灰色背景中的奇数白色条纹是问题所在。 – Tobias
好的,你做的事情必须改变数字的默认设置。请参阅已编辑的答案。 – thomas
我试过了,它确实将图块背景颜色还原成白色,但是图块的框架仍然消失。 我还注意到了情节之间的另一个区别:蜱从“失败”情节中的盒子向外指出,但是在“好”情节中向内。这可能会让问题更加明白吗? – Tobias
有没有人,有一个线索什么尝试?我尝试过正常情节,他们都很好。我真的试图以任何方式剥离改变情节的所有命令,所以就我所见,只剩下不同的设置,例如后端等,这可能是错误。 任何提示我应该在哪里看下? – Tobias
试试'export MPLBACKEND =“TkAgg”' – oliversm