python—绘制隐式函数f(x,y)=0,其中x,y进行矩阵乘法

python—绘制隐式函数f(x,y)=0,其中x,y进行矩阵乘法,python,function,matplotlib,plot,implicit,Python,Function,Matplotlib,Plot,Implicit,作为隐式函数,其中“A”是n*2矩阵 0 = np.dot((x,y),A) 0=xA11-yA12 0=xA21-yA22 0=xAn1 yAn2 是否可以通过matplotlib或其他方式在同一绘图上绘制所有线条,而不使用大循环?给定n*2矩阵a,对于每一行i一条线条由a[i,0]*x+a[i,1]*y==0定义。这意味着0,0始终位于直线上,以及点x=A[i,1],y=-A[i,0]。与任何值相乘(例如通过标准化)将再次在直线上给出点 以下代码显示了可视化这些行的3种方法: 一些被圆

作为隐式函数,其中“A”是n*2矩阵

0 = np.dot((x,y),A)
0=xA11-yA12

0=xA21-yA22

0=xAn1 yAn2


是否可以通过matplotlib或其他方式在同一绘图上绘制所有线条,而不使用大循环?

给定
n*2
矩阵
a
,对于每一行
i
一条线条由
a[i,0]*x+a[i,1]*y==0
定义。这意味着
0,0
始终位于直线上,以及点
x=A[i,1],y=-A[i,0]
。与任何值相乘(例如通过标准化)将再次在直线上给出点

以下代码显示了可视化这些行的3种方法:

  • 一些被圆切割的线段,连同
    x=a[i,1],y=-a[i,0]
    x=-a[i,1],y=a[i,0]
  • 相同的线段一直延伸到绘图的边界
  • 只是圆上的一些端点
导入matplotlib.pyplot作为plt
将numpy作为np导入
来自numpy.linalg进口规范
从matplotlib.collections导入LineCollection
n=10
半径=20
A=np.随机均匀(-10,10,(n,2))
B=A/norm(A,轴=1,keepdims=True)*半径#标准化并放在给定半径的圆上
行=np.dstack([B[:,1],-B[:,0],-B[:,1],B[:,0]])。重塑(-1,2,2)
图,轴=plt.子批次(ncols=3,figsize=(14,4))
对于轴中的ax:
ax.set_方面(“相等”)
对于轴[:2]中的ax:
lc=线条集合(线条,颜色='蓝色',线宽=2)
ax.添加_集合(lc)
如果ax==轴[0]:
最大散射(A[:,1],-A[:,0],颜色为深红色)
最大散射(-A[:,1],A[:,0],color='crimson')
elif ax==轴[1]:
ax.set_xlim(-radius/2,radius/2)
ax.集_ylim(-radius/2,radius/2)
对于范围(2)内的k:
轴[2]。散射(线[:,k,0],线[:,k,1],颜色为深红色)
轴[0]。设置标题(“圆中的线和点”)
轴[1]。设置标题(“到边框的线”)
轴[2]。设置标题(“圆上的点”)
plt.show()
0=np。点((x,y),A)
不是有效的Python代码。你能澄清你的问题吗?