3.1.3 极坐标图
3.1.3.1 线性极坐标
🚩对于极坐标,我们先来绘制一个普通的直角坐标系下的直线
import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 4 * np.pi, 200) y = np.linspace(0, 2, 200) plt.plot(x, y)
我们对上述代码加上一行代码后,就可以转为极坐标:
import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 4 * np.pi, 200) y = np.linspace(0, 2, 200) plt.subplot(111, projection = 'polar') plt.plot(x, y)
接下来,为了让这个极坐标图更加的美观,我们对其属性进行一些设置:
import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 4 * np.pi, 200) y = np.linspace(0, 2, 200) ax = plt.subplot(111, projection = 'polar', facecolor = 'lightgreen') plt.plot(x, y) # 设置 ax.set_rmax(3) # 最大半径设置为3 ax.set_rticks([0.5, 1, 1.5, 2]) # 设置刻度 ax.grid(True) # 设置网格线
3.1.3.2 条形极坐标
import numpy as np import matplotlib.pyplot as plt # 分成8份 (0~360) N = 8 # 横坐标 x = np.linspace(0.0, 2 * np.pi, N, endpoint = False) # 纵坐标 y = np.random.randint(3, 15, size = N) # 宽度(8个柱子沾满圆) width = np.pi / 4 # 8个柱子随机生成颜色 colors = np.random.rand(8,3) # polar表示极坐标 ax = plt.subplot(111, projection = 'polar') ax.bar(x, y, width = width, color = colors)
3.1.4 直方图
🚩绘制的直方图其实就是一个概率分布,直方图可以看成很多个柱子的柱状图
import numpy as np import matplotlib.pyplot as plt mu = 100 # 平均值 sigma = 15 # 标准差 x = np.random.normal(loc = mu, scale = 15, size = 10000) fig, ax = plt.subplots() # 直方图一般用于描述统计性的数据 # 数据量比较大,通过绘制直方图,看出数据内部的关系 # density = True 统计的是概率 # density = False 统计数字在某个范围内的次数 n, bins, patches = ax.hist(x, 200, density = True) # 直方图 # 概率密度函数 y = ((1 / (np.sqrt(2 * np.pi) * sigma)) * np.exp(-0.5 * (1 / sigma * (bins - mu)) ** 2)) plt.plot(bins, y, '--') plt.xlabel('Smarts') plt.ylabel('Probability density') plt.title(r'Histogram of IQ: $\mu=100$, $\sigma=15$') # 紧凑布局 fig.tight_layout()