matplotlib.pyplot和matplotlib.pylab有什么区别?
哪种用法更受青睐?
我有点困惑,因为它似乎独立于我导入,我可以做同样的事情.我错过了什么?
我写了一个模块(文件my_mod.py
夹中的文件文件my_module
).目前,我正在cool_script.py
使用驻留在该文件夹中的文件cur_proj
.我已经使用File - open打开了PyCharm中的文件夹(我假设,因此,它是一个PyCharm项目).
在ProjectView(CMD-7)中,我可以看到我的项目cur_proj
(红色)和"外部库"下的内容my_module
.在cool_script.py中,我可以写
from my_module import my_mod as mm
Run Code Online (Sandbox Code Playgroud)
而PyCharm甚至为my_mod提出建议.到现在为止还挺好.
但是,当我尝试运行cool_script.py时,PyCharm告诉我 "没有名为my_module的模块"
这对我来说很奇怪,因为
A)在终端(OS 10.10.2)中,在python中,我可以导入模块没问题 - .bashrc中的PYTHONPATH中有相应的条目
B)在PyCharm中 - 设置 - 项目cur_proj - 项目解释器 - 在python解释器旁边的CogWheel - 更多 - 显示所选解释器图标的路径,PYTHONPATH的路径确实出现(我认为应该这样)
因此,当我尝试运行cool_script.py时,为什么会出现错误?- 我错过了什么?
笔记:
my_module
正确的道路__init__.py
文件(空文件)放入my_module
和放入cur_proj
virtualenv
当我进入PyCharm运行 - 编辑配置时,对于我当前的项目,有两个选项带有复选标记:" 将内容根添加到PYTHONPATH "和" 将源根添加到PYTHONPATH ".当我同时取消选中时,我可以加载我的模块.
所以它现在有效 - 但为什么呢?
出现了更多问题:
我想通过plt.subplots创建多个imshows.每个imshow的轴应该用字符串标记,而不是用数字标记(这些是表示类别之间相关性的相关矩阵).
我从文档(非常底部)中找到了,它plt.yticks()
返回了我想要的东西,但我似乎无法设置它们.也ax.yticks(...)
行不通.
我找到了关于股票定位器和格式化程序的文档,但我不确定它是否或如何有用
A = np.random.random((3,3))
B = np.random.random((3,3))+1
C = np.random.random((3,3))+2
D = np.random.random((3,3))+3
lbls = ['la', 'le', 'li']
fig, axar = plt.subplots(2,2)
fig.subplots_adjust(right=0.8)
cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])
ar_plts = [A, B, C, D]
for i,ax in enumerate(axar.flat):
im = ax.imshow(ar_plts[i]
, interpolation='nearest'
, origin='lower')
ax.grid(False)
plt.yticks(np.arange(len(lbls)), lbls)
fig.colorbar(im, cax=cbar_ax)
fig_path = r"blah/blub"
fig_name = "matrices.png"
fig_fobj = os.path.join(fig_path, fig_name)
fig.savefig(fig_fobj)
Run Code Online (Sandbox Code Playgroud)