小编goz*_*lli的帖子

matplotlib的子图中的行和列标题

将行和列标题添加到循环中生成的子图网格中的最佳做法是matplotlib什么?我能想到一对,但不是特别整洁:

  1. 对于列,使用循环计数器,您只能使用set_title()第一行.对于行,这不起作用.你必须text在地块之外画画.
  2. 您在顶部添加了一行额外的子图,在左侧添加了一列额外的子图,并在该子图的中间绘制文本.

你能建议一个更好的选择吗?

在此输入图像描述

python matplotlib subplot

63
推荐指数
2
解决办法
3万
查看次数

ReST删除线

是否可以在重组文本中查看文本?

例如,<strike>在转换为HTML时呈现为标记的内容,例如: ReSTructuredText

restructuredtext strikethrough docutils

45
推荐指数
5
解决办法
1万
查看次数

更改matplotlib的默认字体

我正在尝试将matplotlib的默认字体更改为Helvetica Neue.在EPD/Canopy的Mac上,一切都很好.

现在尝试在ubuntu上做同样的事情并且它不起作用.

这就是我做的:

  1. 已安装Helvetica Neue

    $ fc-match 'Helvetica Neue':Light
    HelveticaNeue-Light.otf: "Helvetica Neue" "??"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将odt/dfont转换为ttf:

    fondu -show HelveticaNeue.dfont
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将matplotlibrc更改为

    $ cat ~/.config/matplotlib/matplotlibrc
    ...
    font.family: Helvetica Neue
    
    Run Code Online (Sandbox Code Playgroud)

    我也尝试过:

    font.family: sans-serif
    font.sans-serif: Helvetica Neue
    
    Run Code Online (Sandbox Code Playgroud)
  4. 我删除了字体缓存

    rm ~/.config/matplotlib/fontList.cache
    
    Run Code Online (Sandbox Code Playgroud)

但这些步骤都不适合我.

    $ python -c 'from  matplotlib import pyplot as plt; plt.plot(1); plt.savefig("/tmp/test.png")'
    /usr/local/lib/python2.7/dist-packages/matplotlib-1.3.0-py2.7-linux-x86_64.egg/matplotlib/font_manager.py:1236: 
    UserWarning: findfont: Font family ['Helvetica Neue'] not found. Falling back to Bitstream Vera Sans
Run Code Online (Sandbox Code Playgroud)

(prop.get_family(),self.defaultFamily [fontext]))

版本是1.3.0

    $ python -c 'import matplotlib; print  matplotlib.__version__'
    1.3.0
Run Code Online (Sandbox Code Playgroud)

我也尝试过移动字体,~/.config/matplotlib/fonts/ttf但它没有用.


编辑: 建议我尝试为特定文本选择特定字体.

import matplotlib …
Run Code Online (Sandbox Code Playgroud)

python fonts matplotlib defaults

26
推荐指数
2
解决办法
4万
查看次数

matplotlib - plot将文本输出为路径,无法通过Inkscape转换为LaTeX

我有一个matplotlib情节,我想以矢量图形格式保存,然后在LaTeX文档中使用.

我通常保存它matplotlib,用Inkscape打开它并将其保存为PDF + LaTeX(省略PDF格式的文本并创建LaTeX文件).这也可以通过以下方式实现:

inkscape  -D -z --file=in.pdf --export-pdf=out.pdf --export-latex
Run Code Online (Sandbox Code Playgroud)

但是,对于下面的图,文本实际上是一系列路径.每个字母都是独立的,导致Inkscape无法保存不同的tex文件.

为什么文本没有呈现为文本而是作为下面代码中的路径?注意使用usetex=True并没有什么区别.

谢谢.

from scipy.stats import lognorm
from matplotlib import rc

#rc('text', usetex=True)
rc('font', family='Times New Roman')
rc('font', size='20.0')

mu    = 1.7
sigma = 1.1
n, bins, patches = plt.hist(data, bins=10000, facecolor='k', edgecolor='k', 
                            normed=True, alpha=0.3, histtype='stepfilled',
                            label='\\noindent Empirical data')
y = lognorm.pdf( bins, sigma, scale=np.exp(mu))
plt.xlim( (0,50) )
plt.plot(bins, y, '-', color='k', linewidth=2, label='\\noindent Lognormal curve')
plt.ylim( (0, .15) )
plt.xlabel('my x …
Run Code Online (Sandbox Code Playgroud)

latex matplotlib vector-graphics inkscape

19
推荐指数
2
解决办法
6114
查看次数

将pandas DataFrame列展开为多行

如果我有DataFrame这样的:

pd.DataFrame( {"name" : "John", 
               "days" : [[1, 3, 5, 7]]
              })
Run Code Online (Sandbox Code Playgroud)

给出这个结构:

           days  name
0  [1, 3, 5, 7]  John
Run Code Online (Sandbox Code Playgroud)

如何将其扩展到以下?

   days  name
0     1  John
1     3  John
2     5  John
3     7  John
Run Code Online (Sandbox Code Playgroud)

python pandas

17
推荐指数
4
解决办法
9134
查看次数

在Django Rest Framework中接收Base64编码图像并保存到ImageField中

我需要从应用程序接收图像,我能想到的最好方法是将其发送到Base64编码的JSON数组中.图像非常小,所以我不在乎额外的开销.

我有一个模特:

class Observation(models.Model):    
    ...
    sonogram_image = models.ImageField(upload_to=sonogram_dir)
Run Code Online (Sandbox Code Playgroud)

它的序列化器:

class ObsvSerializerNoDetect(serializers.HyperlinkedModelSerializer):

    class Meta:
        model = Observation
Run Code Online (Sandbox Code Playgroud)

我应该在哪里放置代码来解码图像?

django json django-models django-rest-framework

15
推荐指数
2
解决办法
7116
查看次数

Python:获取字典中值最小但具有多个最小值的键

我正在尝试执行与获取与字典中的最小值对应的键相同的操作 ,其中我们希望获得与字典中的最小值对应的键.

最好的方式似乎是:

min(d, key=d.get)
Run Code Online (Sandbox Code Playgroud)

但是我想在具有多个最小值的字典上应用它:

d = {'a' : 1, 'b' : 2, 'c' : 1}
Run Code Online (Sandbox Code Playgroud)

请注意,上面的答案是:

>>> min(d, key=d.get)
'a'
Run Code Online (Sandbox Code Playgroud)

但是,我需要两个具有最小值的键,即ac.

什么是最好的方法?

(最终我想随机选择其中一个,但我不认为这是相关的).

python dictionary multiple-instances minimum

14
推荐指数
1
解决办法
1万
查看次数

如何将django模板中的多行html包含到javascript变量中

从Django模板,我想包含一个文件的html片段,说mysnippet.html:

<div>
    blah
</div>
Run Code Online (Sandbox Code Playgroud)

进入一个javascript变量:

<script type="text/javascript">
     var myvar = {% include 'mysnippet.html' %}
</script>
Run Code Online (Sandbox Code Playgroud)

问题是新线路需要转义.否则,Javascript会抱怨"未终止的字符串文字".

我知道可以添加斜杠,{{x|addslashes}}但我不知道如何为{% include %}标签做.

django django-templates addslashes

12
推荐指数
1
解决办法
4549
查看次数

IPython - 在导入的文件中设置断点

可以在IPython+中设置断点,pdb如下所示:

run -d -b 150 file1.py 
Run Code Online (Sandbox Code Playgroud)

这将打破第file1.py150行的执行.现在,如何在被调用的文件中设置断点file1.py?类似于以下内容:

run -d -b file2.py:106 file1.py
Run Code Online (Sandbox Code Playgroud)

在哪里file2.py导入和调用内部file1.py.

非常感谢.

python breakpoints ipython pdb

12
推荐指数
1
解决办法
3642
查看次数

使用admin auth注册自定义用户模型

在Django项目中,我有一个自定义用户模型,它添加了一个额外的字段:

class User(AbstractUser):

    company = models.ForeignKey(Company, null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

比如说,这个模型在我的应用程序中定义MyApp.models.

如何让新User模型在"身份验证和授权"下显示为原始django.contrib.auth模型?

在此输入图像描述

python django django-admin django-authentication

11
推荐指数
1
解决办法
1063
查看次数