当前位置: 首页 > 面试题库 >

如何使用Matplotlib在python中绘制矢量

颜举
2023-03-14
问题内容

我正在学习线性代数课程,我想可视化正在使用的向量,例如向量加法,法向向量等。

例如:

V = np.array([[1,1],[-2,2],[4,-7]])

在这种情况下,我想绘制3个向量V1 = (1,1), M2 = (-2,2), M3 = (4,-7)

然后,我应该能够添加V1,V2来绘制一个新的向量V12(全部合并在一个图中)。

当我使用以下代码时,情节与预期不符

import numpy as np
import matplotlib.pyplot as plt
M = np.array([[1,1],[-2,2],[4,-7]])

print("vector:1")
print(M[0,:])
# print("vector:2")
# print(M[1,:])
rows,cols = M.T.shape
print(cols)

for i,l in enumerate(range(0,cols)):
    print("Iteration: {}-{}".format(i,l))
    print("vector:{}".format(i))
    print(M[i,:])
    v1 = [0,0],[M[i,0],M[i,1]]
    # v1 = [M[i,0]],[M[i,1]]
    print(v1)
    plt.figure(i)
    plt.plot(v1)
    plt.show()

问题答案:

多亏了每个人,您的每个帖子对我都有很大帮助。
对于我的问题,rbierman代码非常简单,我做了一些修改,并创建了一个函数来绘制给定数组中的向量。我希望看到任何进一步改进建议。

import numpy as np
import matplotlib.pyplot as plt
def plotv(M):
    rows,cols = M.T.shape
    print(rows,cols)

    #Get absolute maxes for axis ranges to center origin
    #This is optional
    maxes = 1.1*np.amax(abs(M), axis = 0)
    colors = ['b','r','k']
    fig = plt.figure()
    fig.suptitle('Vectors', fontsize=10, fontweight='bold')

    ax = fig.add_subplot(111)
    fig.subplots_adjust(top=0.85)
    ax.set_title('Vector operations')

    ax.set_xlabel('x')
    ax.set_ylabel('y')

    for i,l in enumerate(range(0,cols)):
        # print(i)
        plt.axes().arrow(0,0,M[i,0],M[i,1],head_width=0.2,head_length=0.1,zorder=3)

        ax.text(M[i,0],M[i,1], str(M[i]), style='italic',
            bbox={'facecolor':'red', 'alpha':0.5, 'pad':0.5})

    plt.plot(0,0,'ok') #<-- plot a black point at the origin
    # plt.axis('equal')  #<-- set the axes to the same scale
    plt.xlim([-maxes[0],maxes[0]]) #<-- set the x axis limits
    plt.ylim([-maxes[1],maxes[1]]) #<-- set the y axis limits

    plt.grid(b=True, which='major') #<-- plot grid lines
    plt.show()

r = np.random.randint(4,size=[2,2])
print(r[0,:])
print(r[1,:])
r12 = np.add(r[0,:],r[1,:])
print(r12)
plotv(np.vstack((r,r12)))

在随机向量上执行向量加法



 类似资料:
  • 问题内容: 我有一个格式为(HH:MM:SS.mmmmmm)的时间戳数组和另一个浮点数数组,每个浮点数对应于timestamp数组中的一个值。 我可以使用Matplotlib在x轴上绘制时间,在y轴上绘制数字吗? 我试图这样做,但是不知何故它只接受浮点数数组。如何获得时间图?我必须以任何方式修改格式吗? 问题答案: 你必须首先将时间戳转换为对象(使用)。然后使用将日期转换为格式。 使用以下方式绘制

  • 问题内容: 我正在尝试使用OpenCV从摄像机实时绘制一些数据。但是,实时绘图(使用matplotlib)似乎不起作用。 我将问题隔离到以下简单示例中: 我希望该示例可以单独绘制1000点。实际发生的情况是,窗口弹出并显示第一个点(表示正确),然后等待循环结束,然后填充图的其余部分。 有什么想法为什么我一次看不到点呢? 问题答案: 这是有问题的代码的工作版本(至少需要从2011-11-14起版本)

  • 问题内容: 如何在Python的matplotlib中绘制数字数组的经验CDF?我正在寻找pylab的“ hist”函数的cdf模拟。 我能想到的一件事是: 那是正确的吗?有没有更简单/更好的方法? 谢谢。 问题答案: 看起来(几乎)完全是您想要的。两件事情: 首先,结果是四个项目的元组。第三个是垃圾箱的大小。第二个是最小垃圾箱的起点。第一个是每个垃圾箱中或下方的点数。(最后是超出限制的点数,但是

  • 问题内容: 我想知道如何通过使用方程ay 2 + bxy + cx + dy + e = x 2来绘制椭圆轨道吗? 我首先确定了a,b,c,d,e常数,现在我假设通过给定x值,我将获得y,这将给我想要的图形,但我不能通过使用matplotlib来完成。 如果您能帮助我,我将不胜感激! 编辑:我在这里添加了代码。 编辑:这是常量值: 问题答案: 可以解决y作为x的函数的问题 问题是每个有效x都有y的

  • 问题内容: 我正在开发一个Android项目,并且选择显示图标是因为它具有适应性和动态性,但是我只能在运行Android且具有API 21或更高版本的设备上运行此应用程序。我的问题是如何在较低的Android版本(即API 14或更高版本)上使用。谢谢! 问题答案: 使用支持库23.2,一直到API v7都对Vector Drawables提供了真正的支持。建议通过添加以下内容来禁用该支持的先前版

  • 本文向大家介绍Python如何使用内置库matplotlib绘制折线图,包括了Python如何使用内置库matplotlib绘制折线图的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Python如何使用内置库matplotlib绘制折线图,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 环境准备:   需要安装matplotlib,安装