python极坐标图polar角度统计可视化

python极坐标图polar角度统计

踩坑日记2022.12.29
帮忙做一个统计角度的图,效果如下
做的时候脑抽了,犯了很多低级错误

请添加图片描述

	#调整分辨率
	fig = plt.figure(figsize=(20, 10))
	#极坐标图
    ax1 = plt.subplot(111, projection='polar')
    #统计间隔为2pi/36,也就是10度,要统计350-360的区间就需要加上np.pi*2/36
    bins = np.arange(0,2*np.pi+np.pi*2/36,np.pi*2/36)
    # pandas统计,右闭区间,angleList角度or弧度画出来的图是一样的,但要和bins对应
    cats = pd.cut(angleList, bins, right=True, include_lowest=True)
    #x为对应区间统计频率
    x = pd.value_counts(cats).sort_index()
    print(x)
    #bins里多了一个数,故取到-1即可
    plt.polar(bins[0:-1], x,lw = 1, marker='*',alpha=0.9)
    #相当于画了一个柱状图,width为每个扇形的宽度,单位是弧度,取10度为区间就可以这样写
    #bins为区间起始点,bar的第一个参数相当于扇形的中线位置
    #10度为区间的话就加上5度作为偏移值,画的图就和分布统计完全相同了,可以自己画一个不加偏移值的看一下,就懂了
    bar = ax1.bar(bins[0:-1]+math.radians(5), x, width = math.radians(10),alpha=0.5)
    #标注角度值
    for r,b in zip(x,bins):
        plt.text(b,r,str(math.degrees(b))[0:5])
    #设置颜色
    for r,bar in zip(x,bar):
        bar.set_facecolor(plt.cm.jet(r/300.))
    plt.title('angle')
    plt.tight_layout()
    # plt.show()
    outdir = './数据/angle0/'
    if not os.path.exists(outdir):
        os.mkdir(outdir)
    #保存图片
    plt.savefig(outdir + outname + '.jpg')

细节很多,搞得我好烦

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,我很乐意为您介绍Python中如何操作雷达进行数据可视化。在Python中,我们可以使用Matplotlib库来绘制雷达。以下是一个简单的操作示例: 首先,您需要安装Matplotlib库。您可以使用以下命令来安装: ``` pip install matplotlib ``` 接下来,我们可以使用以下代码来创建一个简单的雷达: ```python import numpy as np import matplotlib.pyplot as plt # 创建数据 categories = ['A', 'B', 'C', 'D', 'E'] values = [4, 3, 2, 5, 1] # 计算每个类别的角度 angles = np.linspace(0, 2 * np.pi, len(categories), endpoint=False).tolist() angles += angles[:1] # 创建雷达 fig, ax = plt.subplots(figsize=(6, 6), subplot_kw={'polar': True}) ax.fill(angles, values, color='skyblue', alpha=0.5) ax.set_xticks(angles[:-1]) ax.set_xticklabels(categories) # 添加标题 ax.set_title('Radar Chart') # 显示形 plt.show() ``` 在上面的代码中,我们首先创建了要显示的数据,其中`categories`包含了雷达的每个类别,`values`包含了每个类别的值。 然后,我们使用`np.linspace`函数计算每个类别在雷达中的角度,并将其存储在`angles`列表中。这里我们使用`endpoint=False`参数来确保最后一个角度值与第一个角度值不重复。 接下来,我们使用`plt.subplots`函数创建一个带有极坐标轴的画布,并设置`subplot_kw={'polar': True}`参数来确保我们创建的是一个极坐标。 然后,我们使用`ax.fill`函数在雷达上绘制多边形。我们将`angles`作为横坐标,`values`作为纵坐标,并设置颜色和透明度。这将填充多边形区域。 最后,我们使用`ax.set_xticks`和`ax.set_xticklabels`函数设置雷达的刻度和刻度标签。 最后,我们使用`plt.show`函数显示形。 这只是一个简单的示例,您可以根据自己的需求进行进一步的定制和美化。希望对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值