首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matplotlib图搞砸了

Matplotlib图搞砸了
EN

Stack Overflow用户
提问于 2015-11-26 01:22:42
回答 2查看 1.6K关注 0票数 1

我有一个相当简单的情节,当我用海运更改了另一个项目的后端后,它突然变得疯狂起来,在这个项目中,一个bug使得有必要更改后端以获得正确的结果。

然而,我一定是做了一些改变情节制作方式的事情,因为不知怎么的,我的情节的框架现在已经消失了,情节的背景也消失了。这里有两个图(数据是不同的,没有所有备份的“好的”),左边是它应该看起来的样子,右边是当前的样子。

我唯一改变的是运行命令export MPLBACKEND="module://WXAgg"。从那时起,我就重新启动了我的计算机,甚至重新安装了matplotlib,看看它是否修复了一些问题。但还是一样的。

任何帮助都是非常感谢的,我相信只有我缺乏经验才使这件事看起来很难解决。

编辑我一直在看这个,但仍然找不到解决方案。这似乎并不是我对后端的修改,但我不知道还有什么可怪的。我已经将我的脚本恢复到我知道没有问题的旧版本,并且我在另一台计算机上运行这个脚本,没有任何问题!

下面是处于当前浓缩状态的脚本:

代码语言:javascript
复制
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()

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-03 13:29:50

在解决了许多问题之后,我发现实际上是导入seaborn导致了我的问题。如果我把它移到使用它的地方,它可以让其他地方不受影响,我的问题就解决了。

为什么导入seaborn应该改变我不理解的所有情节,但我现在知道要更加小心我把我的进口品放在哪里。

票数 0
EN

Stack Overflow用户

发布于 2015-11-30 11:47:44

据我所见,这些情节之间唯一的区别是,左边的方框是显示的,右边是隐藏的。我不知道seaborn做了什么,但似乎您确实更改了这些参数的默认设置。您可以使用plt.box('off')/plt.box('on')显式地打开和关闭这些框。对于图例,可以传递参数frameon = True/False

编辑:尝试如下:查找rcparams文件(matplotlib.matplotlib_fname())。将以下行粘贴到其中:

代码语言:javascript
复制
axes.facecolor:white      
axes.edgecolor:black
legend.frameon: True

重新运行你的剧本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33929170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档