我要繪製使用matplotlib的座標系統的座標系(例如笛卡爾共ORDS)。繪製座標線使用Matplotlib
然後我想用一些線性變換(傾斜,縮放,旋轉等)改造他們,我要繪製系統的這一轉換後的版本,以及。
我很新的matplotlib,我不知道,我怎麼會去這樣做。有什麼建議麼?
事情是這樣的:
不必在同一個情節如上,我只是希望能夠繪製線(和形狀以及它們的轉換版本,以及) 。
編輯:如果你不是有一個MATLAB的解決方案,我承擔了太多。
我要繪製使用matplotlib的座標系統的座標系(例如笛卡爾共ORDS)。繪製座標線使用Matplotlib
然後我想用一些線性變換(傾斜,縮放,旋轉等)改造他們,我要繪製系統的這一轉換後的版本,以及。
我很新的matplotlib,我不知道,我怎麼會去這樣做。有什麼建議麼?
事情是這樣的:
不必在同一個情節如上,我只是希望能夠繪製線(和形狀以及它們的轉換版本,以及) 。
編輯:如果你不是有一個MATLAB的解決方案,我承擔了太多。
user2539738's answer演示瞭如何在一個情節畫一個網格。下一步是應用變換。這是一個數學運算,可以描述爲x和y座標的函數。例如,剪切轉換就像您的示例圖像 -
def my_transform(x, y):
return (x+y/2, y)
考慮到這一點,您可以繪製轉換後的網格。您只需計算新的座標:
# Transformed grid
for x in xx:
(x1, y1) = my_transform(x, min(yy))
(x2, y2) = my_transform(x, max(yy))
plt.plot([x1,x2],[y1,y2],color='r')
for y in yy:
(x1, y1) = my_transform(min(xx), y)
(x2, y2) = my_transform(max(xx), y)
plt.plot([x1,x2],[y1,y2],color='r')
這將變換後的網格繪製爲紅色。第一個循環繪製了網格的垂直線(從點x, min(yy)
到x, max(yy)
),第二個繪製了水平線。變換函數應用於原始點對以計算變換線的新端點。
非常感謝!太棒了。 – SilverSlash
這應該讓你開始步入正軌
import matplotlib
import matplotlib.pyplot as plt
xx = range(10)
yy = range(10)
[plt.plot([x,x],[min(yy),max(yy)],color='k') for x in xx]
[plt.plot([min(xx),max(xx)],[y,y],color='k') for y in yy]
到目前爲止您有任何代碼嗎?你是否希望用線性變換(更復雜)來顯示實際的座標軸,或者只是將變換後的對象繪製在法線圖上(簡單,只需將適當的數學公式應用於點)? – whrrgarbl
我想要一個座標線的網格。我想說明'空間'是如何轉變的。 – SilverSlash