我试着给极坐标图中对应于0的圆线上色。这就是我想要达到的目标:
关于这个相关的问题(Shading a segment between two lines on polar axis (matplotlib)),ax.fill_between用于填充两个值之间的空间,但我正在寻找一种方法,只给每个变量的值为0的圆线着色。在
如果有人有任何建议,将不胜感激!如果有人想尝试一下,我在下面插入了一个最小的工作示例。在import matplotlib.pyplot as plt
import pandas as pd
def make_spider(row, title, color):
import math
categories = list(df)
N = len(categories)
angles = [n / float(N) * 2 * math.pi for n in range(N)]
angles += angles[:1]
ax = plt.subplot(1, 5, row+1, polar=True)
plt.xticks(angles[:-1], categories, color='grey', size=8)
values = df.iloc[row].values.flatten().tolist()
values += values[:1]
ax.plot(angles, values, color=color, linewidth=2, linestyle='solid')
ax.fill(angles, values, color=color, alpha = .4)
plt.gca().set_rmax(.4)
my_dpi = 40
plt.figure(figsize=(1000/my_dpi, 1000/my_dpi), dpi=96)
my_palette = plt.cm.get_cmap('Set2', len(df.index)+1)
for row in range(0, len(df.index)):
make_spider( row = row, title='Cluster: ' + str(row), color=my_palette(row) )
示例数据帧:
^{pr2}$