箱型图
fig, ax = plt.subplots(figsize=(3.5,2.5), tight_layout=True) x = [1, 3, 5, 7, 9] ax.boxplot(x)
雷达图
使用极坐标系{'projection':'polar'}
fig, ax = plt.subplots(figsize=(3.5,2.5), subplot_kw={'projection':'polar'}) x = [1, 3, 5, 7, 9] ax.plot(x)
以上就是matplotlib中的一些常用图表的使用方法,截止到目前,matplotlib和excel的区别还不是很大,至少我们现在看到的图表都是,给一组数据,然后直接画一个图,还么有使用特别多的自定义图形元素的操作。我们之前说过,在matplotlib中一切都是artist,后面我们将在artist层面来控制每一个图形元素。下面我们要先抛出一个我们在上一篇里面提到的axis对象,这是matplotlib中的坐标轴对象,包含了坐标轴和坐标轴上的刻度。
Axis层面
获取一个axes的axis
每一个axes包含两个坐标轴(3D图形则包含z轴),每一个坐标轴上含有两个小的坐标轴,分别是
- 主坐标轴(major)
- 子坐标轴(minor)
一般,我们见到的是主坐标轴,叫做
fig, ax = plt.subplots(figsize=(3.5,2.5)) ax.xaxis # x轴的坐标轴 ax.yaxis # y轴的坐标轴
修改坐标轴的label
等价于ax.set_xlabel('x 轴')
fig, ax = plt.subplots(figsize=(3.5,2.5)) ax.xaxis.set_label_text('x 轴')
修改坐标轴刻度标签
等价于ax.set_xticks([1,2,3,4,5])
fig, ax = plt.subplots(figsize=(3.5,2.5)) ax.xaxis.set_ticks([1,2,3,4,5]) # 必须为一个数字列表
修改坐标轴刻度间距
from matplotlib.pyplot import MultipleLocator fig, ax = plt.subplots(figsize=(3.5,2.5)) ax.set_xlim(0,100) ax.xaxis.set_major_locator(MultipleLocator(10))
修改坐标轴刻度标签为文本
使用格式化方法,含有{x}
的字符串即可
from matplotlib.pyplot import MultipleLocator fig, ax = plt.subplots(figsize=(3.5,2.5)) ax.set_xlim(0,100) ax.xaxis.set_major_locator(MultipleLocator(40)) ax.xaxis.set_major_formatter('$x={x:.0f$')
重置一个坐标轴内容
fig, ax = plt.subplots(figsize=(3.5,2.5)) ax.xaxis.set_ticks([1,2,3,4,5]) # 必须为一个数字列表 ax.xaxis.cla()
隐藏一个坐标轴
fig, ax = plt.subplots(figsize=(3.5,2.5)) ax.xaxis.set_visible(False) ax.yaxis.set_visible(False)
以上是axes和axis中的一些常用方法,下一篇,我们聚焦artist层面的操作,在artist层面,我们可以精确的控制图上的每一个点,每一条线,每一个字符串。结合这篇文章里面的内容,我们可以做出一些更有意思的图出来。