我有一个相当简单的情节,当我用海运更改了另一个项目的后端后,它突然变得疯狂起来,在这个项目中,一个bug使得有必要更改后端以获得正确的结果。
然而,我一定是做了一些改变情节制作方式的事情,因为不知怎么的,我的情节的框架现在已经消失了,情节的背景也消失了。这里有两个图(数据是不同的,没有所有备份的“好的”),左边是它应该看起来的样子,右边是当前的样子。
我唯一改变的是运行命令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()


发布于 2015-12-03 13:29:50
在解决了许多问题之后,我发现实际上是导入seaborn导致了我的问题。如果我把它移到使用它的地方,它可以让其他地方不受影响,我的问题就解决了。
为什么导入seaborn应该改变我不理解的所有情节,但我现在知道要更加小心我把我的进口品放在哪里。
发布于 2015-11-30 11:47:44
据我所见,这些情节之间唯一的区别是,左边的方框是显示的,右边是隐藏的。我不知道seaborn做了什么,但似乎您确实更改了这些参数的默认设置。您可以使用plt.box('off')/plt.box('on')显式地打开和关闭这些框。对于图例,可以传递参数frameon = True/False。
编辑:尝试如下:查找rcparams文件(matplotlib.matplotlib_fname())。将以下行粘贴到其中:
axes.facecolor:white
axes.edgecolor:black
legend.frameon: True重新运行你的剧本。
https://stackoverflow.com/questions/33929170
复制相似问题