小编pcu*_*pcu的帖子

Matplotlib找不到基本字体

我在miniconda虚拟环境中使用Python 3上的matplotlib版本2.0.0.我正在开发一个unix科学计算集群,我没有root权限.我通常通过ipython笔记本执行python代码.如果我执行基本命令,例如:

import matplotlib.pyplot as plt
plt.scatter([1,5], [1,5])
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息:

path_to_miniconda/miniconda3/envs/conda34/lib/python3.4/site-
packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family
['sans-serif'] not found. Falling back to DejaVu Sans
(prop.get_family(), self.defaultFamily[fontext]))
Run Code Online (Sandbox Code Playgroud)

我希望能够使用Times New Roman字体,但即使删除了我从这里找到的字体缓存文件(fontList.py3k.cache):

import matplotlib as mpl
fm = mpl.font_manager
fm.get_cachedir()
Run Code Online (Sandbox Code Playgroud)

命令:

mpl.rcParams['font.family'] = ['serif']
mpl.rcParams['font.serif'] = ['Times New Roman']
Run Code Online (Sandbox Code Playgroud)

没有效果,我得到与上面相同的错误.真正的字体类型目录:

path_to_miniconda/miniconda3/ENVS/conda34/lib中/ python3.4 /站点包/ matplotlib/MPL-数据/字体/ TTF /

其中只有40种字体:DejaVuSerif,DejaVuSans,STIX,cmb,cmt,cmy

知道可能会发生什么,以及如何添加其他字体?谢谢!

python matplotlib truetype miniconda

40
推荐指数
8
解决办法
3万
查看次数

熊猫:将多个时间序列DataFrame绘制成单个图

我有以下pandas DataFrame:

     time      Group      blocks
0     1        A           4
1     2        A           7
2     3        A           12
3     4        A           17
4     5        A           21 
5     6        A           26
6     7        A           33
7     8        A           39
8     9        A           48
9     10       A           59
    ....        ....          ....
36     35      A           231
37     1       B           1
38     2       B           1.5
39     3       B           3
40     4       B           5
41     5       B           6
    ....        ....          ....
911    35      Z           349
Run Code Online (Sandbox Code Playgroud)

这是多个时间序列,疑问句数据的数据帧,从 …

python matplotlib pandas pandas-groupby

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

matplotlib中的2d hsv颜色空间

我试图在matplotlib中重现这个图(取自维基百科)

在此输入图像描述

基本上是2d hsv颜色空间,饱和度设置为1.0.这是我到目前为止所做的

from pylab import *
from numpy import outer

x = outer(arange(0, 1, 0.01), ones(100))

imshow(transpose(x), cmap=cm.hsv)
show()
Run Code Online (Sandbox Code Playgroud)

这绘制了色调通道,但我不知道如何添加第二个通道.

python numpy matplotlib

9
推荐指数
1
解决办法
8079
查看次数

python绘制3D立方体

我想画一个平行六面体.实际上我从绘制多维数据集的python脚本开始:

import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

points = np.array([[-1, -1, -1],
                  [1, -1, -1 ],
                  [1, 1, -1],
                  [-1, 1, -1],
                  [-1, -1, 1],
                  [1, -1, 1 ],
                  [1, 1, 1],
                  [-1, 1, 1]])


fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

r = [-1,1]

X, Y = np.meshgrid(r, r)

ax.plot_surface(X,Y,1, alpha=0.5)
ax.plot_surface(X,Y,-1, alpha=0.5)
ax.plot_surface(X,-1,Y, alpha=0.5)
ax.plot_surface(X,1,Y, alpha=0.5)
ax.plot_surface(1,X,Y, alpha=0.5)
ax.plot_surface(-1,X,Y, alpha=0.5)

ax.scatter3D(points[:, 0], points[:, 1], points[:, 2])

ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

plt.show()
Run Code Online (Sandbox Code Playgroud)

为了获得平行六面体,我将点矩阵乘以下面的矩阵:

P …
Run Code Online (Sandbox Code Playgroud)

python 3d matplotlib mplot3d

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

通过starttls方法从smtplib登录到旧的电子邮件服务器

我使用:Python 2.7.15,OpenSSL 1.1.0h(2018年3月27日),MS Exchange 2007.

我的MS交换允许仅在STARTTLS之后发送登录/通过.

在python中我尝试连接到服务器,如:

from stmplib import SMTP
conn = SMTP(server,port)
conn.set_debuglevel(1)
conn.starttls()
conn.login(username, password)
conn.quit()
Run Code Online (Sandbox Code Playgroud)

最后我得到错误starttls:

/python2.7/ssl.py",第847行,在do_handshake self._sslobj.do_handshake()中

问题是遵循python尝试与TLS v1.2建立连接,但Exchange仅支持TLS v.1.0.我尝试了端口25和587.

当我尝试通过控制台openssl应用程序连接并登录到服务器时,对于具有TLS v.1.0的两个端口都可以正常工作: openssl s_client -connect sever:587 -starttls smtp -no_tls1_2 -no_tls1_1 -crlf 服务器答案:

SSL handshake has read 1481 bytes and written 530 bytes
--- New, TLSv1/SSLv3, Cipher is RC4-MD5 Server public key is 2048 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session:
    Protocol  : TLSv1
    Cipher    : …
Run Code Online (Sandbox Code Playgroud)

python openssl exchange-server-2007 smtplib starttls

8
推荐指数
1
解决办法
374
查看次数

Matplotlib:如何调整轮廓图中色条的线宽?

这是一个生成图表的最小例子,它说明了我的问题:

import matplotlib.pylab as plt
import matplotlib.mpl as mpl
import numpy as np
import random

data = [[random.random() for i in range(10)] for j in range(10)]

[XT, YT] = np.meshgrid(np.arange(1,10+1,1), np.arange(1,10+1,1))

cmap = mpl.cm.gray

fig, ax = plt.subplots()

CS = ax.contour(XT, YT, data,levels=np.arange(0,1+0.1,0.1),\
                cmap=cmap,linewidths=0.75)
CB = plt.colorbar(CS, ticks=np.arange(0,1+0.1,0.1))  

plt.show()
Run Code Online (Sandbox Code Playgroud)

结果图看起来像这样:

gray_contours

我想保留图linewidths中的轮廓线,0.75但增加它们colorbar(为了更好的可读性).

如何linewidthscolorbar不更改图中的情况下更改?

我最初尝试过CB.collections,但colorbar没有collections.此外,colorbar使用参数调用linewidths=4.0不起作用(它是一个未知参数).

评论
在输入这个问题时,我有了这个想法(橡皮鸭调试):

CS = ax.contour(XT, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

7
推荐指数
1
解决办法
5674
查看次数

去掉cpp生成的注释

我使用#include ".../frontend/tokens.mll"in lexer.mll,然后cpp -C -P frontend/lexer.mll -o frontend/lexer_new.mll生成lexer_new.mll.

这一直有效,直到我昨天将我的 ubuntu 从 12.04 升级到 14.04。

编译报错:

ocamllex frontend/lexer_new.mll
File "frontend/lexer_new.mll", line 1, character 1: illegal character /.
make: *** [frontend/lexer_new.ml] Error 3
Run Code Online (Sandbox Code Playgroud)

那是因为在lexer_new.mll开始处插入了几行 C 注释:

/* Copyright (C) 1991-2014 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU …
Run Code Online (Sandbox Code Playgroud)

gcc ocaml c-preprocessor

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

修改pandas图的日期刻度

下面显示了模拟数据的图表,其中包含我想要修改的xticks.默认情况下,pd.df.plot选择相隔大约3个月的日期作为刻度.但我想要的是每个月都是一个滴答声.做这个的最好方式是什么?季节性蜱怎么样?先感谢您.

在此输入图像描述

python datetime matplotlib pandas

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

在 sympy 表达式中查找函数

我正在寻找一种在 Sympy 表达式中查找功能参数的可靠方法。例如,在下面的示例中,如何f从检索operator

import sympy

x, y = sympy.symbols('x y')
f = sympy.Function('f')
operator = x*f(x, y).diff(x) + y*f(x, y)

print(operator.free_symbols)
# prints {x, y}
Run Code Online (Sandbox Code Playgroud)

python sympy

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

将图例放在子情节的地方

我想在中心子情节的地方放置一个图例(并将其删除)。我写了这段代码:

import matplotlib.pylab as plt
import numpy as np

f, ax = plt.subplots(3,3)
x = np.linspace(0, 2. * np.pi, 1000)
y = np.sin(x)

for axis in ax.ravel():
    axis.plot(x, y)
    legend = axis.legend(loc='center')

plt.show()
Run Code Online (Sandbox Code Playgroud)

我不知道如何隐藏一个中心情节。为什么传说没有出现?

示例图

此链接没有帮助http://matplotlib.org/1.3.0/examples/pylab_examples/legend_demo.html

python matplotlib legend subplot

4
推荐指数
1
解决办法
1431
查看次数