我在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
知道可能会发生什么,以及如何添加其他字体?谢谢!
我有以下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)
这是多个时间序列,疑问句数据的数据帧,从 …
我试图在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脚本开始:
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 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) 这是一个生成图表的最小例子,它说明了我的问题:
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)
结果图看起来像这样:

我想保留图linewidths中的轮廓线,0.75但增加它们colorbar(为了更好的可读性).
如何linewidths在colorbar不更改图中的情况下更改?
我最初尝试过CB.collections,但colorbar没有collections.此外,colorbar使用参数调用linewidths=4.0不起作用(它是一个未知参数).
评论
在输入这个问题时,我有了这个想法(橡皮鸭调试):
CS = ax.contour(XT, …Run Code Online (Sandbox Code Playgroud) 我使用#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) 下面显示了模拟数据的图表,其中包含我想要修改的xticks.默认情况下,pd.df.plot选择相隔大约3个月的日期作为刻度.但我想要的是每个月都是一个滴答声.做这个的最好方式是什么?季节性蜱怎么样?先感谢您.
我正在寻找一种在 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) 我想在中心子情节的地方放置一个图例(并将其删除)。我写了这段代码:
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