用python

时间:2016-09-22 17:11:24

标签: python matplotlib plot

我是Python新手绘制的东西,我想知道绘制下图的最佳方法是什么?

Shape (2 semi-circles and 1 cylinder)

基本上,我试图绘制具有一定尺寸的形状(2个半圆形接触中间的圆柱体(从点2到3)) 让我们说我可以访问R2,R3和M3点的高度)。有了这个我已经尝试使用参数方程(x = R.cos(theta),y = r.sin(theta))绘制圆圈。我使用matplotlib的3D参数,最后有一个圆圈。 [编辑]到目前为止,它有一个很好的方法可以解决,但我觉得必须有一个更好的解决方案来解决这个问题。

但我想知道它是否是最好的方法。我在网上看过你可以使用地图社区中的形状文件。

# -*- coding: iso-8859-1 -*-
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt


R2=3
r3=2
xp3=1

xp2=R2-np.sqrt(R2**2-r3**2)
hz=xp3-xp2

print ' -- Values --'
print 'R2: ',R2
print 'r3: ',r3
print 'xp3: ',xp3
print 'xp2: ',xp2
print 'hz: ',hz

mpl.rcParams['legend.fontsize'] = 10

fig = plt.figure()
ax = fig.gca(projection='3d')
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
#z = np.linspace(-2, 2, 100)
z = 0
r = R2
x = r * np.sin(theta)
y = R2 + r * np.cos(theta)
ax.plot(x, y, label='test')
ax.legend()
plt.show()

exemple

你对此有何建议?

0 个答案:

没有答案