玩转Python数据分析!Matplotlib实战(九):极区图、极坐标图与雷达图绘制,一起来看高级用法中的极坐标柱状图绘制
和极坐标散点图的绘制类似,matplotlib.pyplot.polar()
方法可以实现极坐标图,但仅用这一个函数的话实现的样式效果并不多,以下介绍另外三种绘制极坐标柱状图的方法:
-
matplotlib.pyplot.polar()
和matplotlib.pyplot.bar()
结合,前者绘制极坐标图,后者在极坐标图上绘制柱状图; -
matplotlib.pyplot.subplot()
和matplotlib.pyplot.bar()
结合,前者添加子图,其中指定projection='polar'
即为极坐标图, 后者在极坐标图上绘制柱状图; -
matplotlib.pyplot.axes()
与matplotlib.pyplot.bar()
结合,前者设置绘图区参数,其中指定projection='polar'
或polar=True
即为极坐标图, 后者在极坐标图上绘制柱状图。
【6x01】方法一:pyplot.bar() 与 pyplot.polar()
以下用到的 matplotlib.pyplot.bar()
函数,各参数含义以及支持的其他参数可以参见前文:
-
《Python 数据分析三剑客之 Matplotlib(二):文本描述 / 中文支持 / 画布 / 网格等基本图像属性》
-
《Python 数据分析三剑客之 Matplotlib(六):直方图 / 柱状图 / 条形图的绘制》
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
r = np.random.rand(8)
theta = np.arange(0, 2 * np.pi, 2 * np.pi / 8)
colors = np.array(['#4bb2c5', '#c5b47f', '#EAA228', '#579575', '#839557', '#958c12', '#953579', '#4b5de4'])
plt.polar()
plt.bar(theta, r, color=colors, alpha=0.8)
plt.title('极坐标柱状图示例一', pad=15)
plt.show()
【6x02】方法二:pyplot.bar() 与 pyplot.subplot()
matplotlib.pyplot.subplot()
方法用于添加子图,如果想要子图为极坐标图,则需要指定 projection
参数为 polar
,有关此函数的具体介绍可参见官方文档。其他函数的参数解释可参考前文:
-
《Python 数据分析三剑客之 Matplotlib(三):图例 / LaTeX / 刻度 / 子图 / 补丁等基本图像属性》
-
《Python 数据分析三剑客之 Matplotlib(六):直方图 / 柱状图 / 条形图的绘制》
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
r = np.random.rand(8)
theta = np.arange(0, 2 * np.pi, 2 * np.pi / 8)
colors = np.array(['#4bb2c5', '#c5b47f', '#EAA228', '#579575', '#839557', '#958c12', '#953579', '#4b5de4'])
plt.subplot(111, projection='polar')
plt.bar(theta, r, color=colors, alpha=0.8)
plt.title('极坐标柱状图示例二', pad=15)
plt.show()
【6x03】方法三:pyplot.bar() 与 pyplot.axes()
axes 为 Matplotlib 图像中的绘图区,matplotlib.pyplot.axes()
方法可以对绘图区进行设置,同样的也可以设置 projection
参数为 polar
来实现极坐标图,设置 polar=True
也行。示例中其他函数的参数解释可参考前文:
-
《Python 数据分析三剑客之 Matplotlib(一):初识 Matplotlib 与其 matplotibrc 配置文件》
-
《Python 数据分析三剑客之 Matplotlib(六):直方图 / 柱状图 / 条形图的绘制》
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
r = np.random.rand(8)
theta = np.arange(0, 2 * np.pi, 2 * np.pi / 8)
colors = np.array(['#4bb2c5', '#c5b47f', '#EAA228', '#579575', '#839557', '#958c12', '#953579', '#4b5de4'])
# plt.axes(polar=True)
plt.axes(projection='polar')
plt.bar(theta, r, color=colors, alpha=0.8)
plt.title('极坐标柱状图示例三', pad=15)
plt.show()
这里是一段防爬虫文本,请读者忽略。
本文原创首发于 ****,作者 TRHX。
博客首页:https://itrhx.blog.****.net/
本文链接:https://itrhx.blog.****.net/article/details/106162412
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!