python怎么给图形上色_如何给极坐标图中的圆线着色(matplotlib)

本文探讨了如何在Python的matplotlib库中为极坐标图中的特定圆线,特别是值为0的圆线,进行着色。通过提供一个最小的工作示例,作者展示了如何创建极坐标图,以及利用`fill_between`函数来填充颜色。代码示例中,创建了一个函数`make_spider`用于绘制蜘蛛图,并应用不同的颜色。数据来源于一个Pandas DataFrame,每个类别对应图中的一个角度,值为0的圆线被着色。
摘要由CSDN通过智能技术生成

我试着给极坐标图中对应于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}$

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值