我想绘制的数据点是在一个一维数组只是沿着水平轴[编辑:在给定的y值处],如图所示:
我如何用pylab做到这一点?
drkbr07n1#
Staven已经编辑了他的帖子,包括如何沿着y值1绘制值,但他使用的是Python列表。一个应该更快的变体(尽管我没有测量它)只使用numpy数组:
import numpy as np import matplotlib.pyplot as pp val = 0. # this is the value where you want the data to appear on the y-axis. ar = np.arange(10) # just as an example array pp.plot(ar, np.zeros_like(ar) + val, 'x') pp.show()
作为一个好用的函数,它通过kwargs提供了所有常见的matplotlib改进,这将是:
def plot_at_y(arr, val, **kwargs): pp.plot(arr, np.zeros_like(arr) + val, 'x', **kwargs) pp.show()
1szpjjfi2#
这将绘制数组“ar”:
import matplotlib.pyplot as pp ar = [1, 2, 3, 8, 4, 5] pp.plot(ar) pp.show()
如果你使用的是ipython,你可以用“-pylab”选项启动它,它会在启动时自动导入numpy和matplotlib,所以你只需要写:
ar = [1, 2, 3, 8, 4, 5] plot(ar)
要在y坐标设置为1的情况下绘制散点图,请执行以下操作:
plot(ar, len(ar) * [1], "x")
qlvxas9a3#
X = np.arange(10) plt.scatter( X, [0] * X.shape[0])
3条答案
按热度按时间drkbr07n1#
Staven已经编辑了他的帖子,包括如何沿着y值1绘制值,但他使用的是Python列表。
一个应该更快的变体(尽管我没有测量它)只使用numpy数组:
作为一个好用的函数,它通过kwargs提供了所有常见的matplotlib改进,这将是:
1szpjjfi2#
这将绘制数组“ar”:
如果你使用的是ipython,你可以用“-pylab”选项启动它,它会在启动时自动导入numpy和matplotlib,所以你只需要写:
要在y坐标设置为1的情况下绘制散点图,请执行以下操作:
qlvxas9a3#