之前我们用一些图形,但是如果要做复杂的图形如下,应该怎么办呢?
在画这个图之前我们要思考数学中的知识点 极坐标系
极坐标系(polar coordinates)是指在平面内由极点、极轴和极径组成的坐标系。在平面上取定一点O,称为极点。从O出发引一条射线Ox,称为极轴。再取定一个单位长度,通常规定角度取逆时针方向为正。这样,平面上任一点P的位置就可以用线段OP的长度ρ以及从Ox到OP的角度θ来确定,有序数对(ρ,θ)就称为P点的极坐标,记为P(ρ,θ);ρ称为P点的极径,θ称为P点的极角
直角坐标系和极坐标系的转化解析
- 极坐标系坐标转换为平面直角坐标系(笛卡尔坐标系)下坐标:极坐标系中的两
- 个坐标ρ和θ可以由下面的公式转换为直角坐标系下的坐标值:
x=ρ cos θ
y=ρ sin θ
- 平面直角坐标系坐标转换为极坐标系下坐标:由上述二公式,可得到从直角坐标
- 系中x和y两坐标如何计算出极坐标下的坐标:
θ=arctan (y/x) (x≠0)
- 在x=0的情况下:若y为正数θ=90° (π /2radians);若y为负,则θ =270° (3 π /2radians)。
直角坐标系的定义
在同一个平面上互相垂直且有公共原点的两条数轴构成平面直角坐标系,简称直角坐标系。
通常,两条数轴分别置于水平位置与垂直位置,取向右与向上的方向分别为两条数轴的正方向。水平的数轴叫做x轴(x-axis)或横轴,垂直的数轴叫做y轴(y-axis)或纵轴,x轴y轴统称为坐标轴,它们的公共原点O称为直角坐标系的原点(origin),以点O为原点的平面直角坐标系记作平面直角坐标系xOy。
那么 如何实现一个极坐标呢,先看直角坐标怎么实现
import numpy as np
import matplotlib.pyplot as plt
ax = plt.axes([0.025, 0.025, 0.95, 0.95],)
上面 的怎么变成 极坐标呢
import numpy as np
import matplotlib.pyplot as plt
ax = plt.axes([0.025, 0.025, 0.95, 0.95], polar=True)
搁在给这个极坐标填充颜色
使用bar函数,生成极坐标相关的值
bars = plt.bar(theta, radii, width=width, bottom=0.0)
for r,bar in zip(radii, bars):
bar.set_facecolor(plt.cm.jet(r/10.))
bar.set_alpha(0.5)
完整程序如下
'''
Created on 2023年4月8日
@author: admin
'''
import numpy as np
import matplotlib.pyplot as plt
'''
'''
ax = plt.axes([0.025, 0.025, 0.95, 0.95], polar=True)
# ax = plt.axes([0.025, 0.025, 0.95, 0.95], )
N = 20
theta = np.arange(0.0, 2 * np.pi, 2 * np.pi / N)
radii = 10 * np.random.rand(N)
width = np.pi / 4 * np.random.rand(N)
bars = plt.bar(theta, radii, width=width, bottom=0.0)
for r,bar in zip(radii, bars):
bar.set_facecolor(plt.cm.jet(r/10.))
bar.set_alpha(0.5)
ax.set_xticklabels([])
ax.set_yticklabels([])
plt.show()