我从Matlab背景开始学习Python、numpy和matplotlib。在matlab中,我一直在使用的一个函数是imagesc。在matplotlib中有没有与此完全相同的东西?我知道imshow和pcolor,但是第一个不允许你像imagesc那样轻松地设置轴的单位,第二个让你设置像素边界的x和y坐标,而不是像素的中心,我觉得这不是很直观。
基本上,如果我想用x轴和y轴标签来显示图像,这些x轴和y轴标签不是像素数,而是数值,比如距离( mm ),那么在matplotlib中最简单的方法是什么?
我正在运行一个循环来绘制一组不同的线,但将它们绘制在对数图上是最有意义的(处理大约9个数量级)。他们用对数图绘制了它们应该如何绘制,但只有当我尝试对它们进行对数绘制时,轴/轴标签才会消失。
#THIS IS FOR A NORMAL PLOT
import matplotlib.pyplot as plt
plt.figure()
for ii in list1:
plt.plot(xarray[:], yarray[ii,:])
plt.show()
我已经尝试添加了以下内容:
plt.xscale('log')
和
plt.yscale('log'
我在用对数y轴绘制二维散点图上的5个点(x,y)。绘制出了图,但y轴的范围没有很好地选择,因此只显示了一个点。当我移除第一点(0.38,0.005)时,问题就消失了。
这是matplotlib中的一个bug吗?
有人能试着复制这个吗?
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
emissions_abs_pts = np.array([
[0.38, 0.005], # without this point it scales appropriately
[0.42, 0.05]
我安装的matplotlib似乎正在截断刻度线标签和截断轴标签。例如,绘图的代码示例具有从0到20的y轴值。垂直轴似乎只打印最左边的数字,或最左边的数字,符号为0、5、1、1、2,其中应为0.0、5.0、10.0、15.0、20.0。垂直轴标签将'Amplitu‘打印在应为’Amplitu,arb‘的位置。通过窗口拉伸改变字体大小或缩放绘图不会改变行为。python代码:
from numpy import arange, sin, pi
from numpy import ma
from matplotlib.pyplot import plot, show, title, xla