参考了董老师代码:
https://blog.csdn.net/dongfuguo/article/details/104865517
import matplotlib.pyplot as plt
from matplotlib import font_manager
import seaborn as sns
import pandas as pd
import numpy as np
# 极坐标
ax=plt.subplot(111,projection='polar')
value=[3,2,5,2,3,10,4,3,3,4,4,2]
yuanxin1=40 #好像不完全生效
yuanxin2=yuanxin1-2
yuanxin3=yuanxin1+max(value)+2
N=len(value)
theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
setcolor=sns.color_palette("BrBG", len(value))
ax.bar(theta,value,#角度对应位置,半径对应高度
width=0.4,#宽度
color=setcolor,#颜色
#align='edge',#从制定角度的径向开始绘制
bottom=yuanxin1 #远离圆心的距离
)
value2=["1"]*len(value)
ax.bar(theta,value2,#角度对应位置,半径对应高度
width=0.4,#宽度
#color=np.random.random((len(value),3)),#颜色
color=setcolor,#颜色
#align='edge',#从制定角度的径向开始绘制
bottom=yuanxin2 #远离圆心的距离
)
colors_quan=['whitesmoke'] * len(value)
value3=["2"]*len(value)
ax.bar(theta,value3,#角度对应位置,半径对应高度
width=0.4,#宽度
color=colors_quan,#颜色
#align='edge',#从制定角度的径向开始绘制
bottom=yuanxin3 #远离圆心的距离
)
# 不显示坐标轴
plt.axis("off")
plt.show()
#### 图是半成品,没有研究明白如何添加图例和注解。
效果: