Python绘制图片一

该篇文章详细解释了如何使用Python的numpy和matplotlib库创建极坐标条形图,包括设置角度、半径、宽度、颜色映射和透明度等参数。
摘要由CSDN通过智能技术生成

在这里插入图片描述

一、代码段讲解


1. theta = np.linspace(0.0, 2 * np.pi, N , endpoint=False)

这是一个生成圆形上的点的代码。np.linspace(0.0, 2 * np.pi, N , endpoint=False)生成了从 0 0 0 2 π 2π 2π,共N个等差数列的数字,不包含2π,这些数字将被用来表示圆上的每一个点的极角(弧度制)。


2. ax = plt.subplot(111,projection='polar')

这行代码是创建了一个极坐标系子图,把整个图分为1行1列,这个子图占据整个图的全部空间(111)。projection='polar'用于指定子图的投影方式为极坐标系。

bars = ax.bar(theta,radii,width=width,bottom=0.0)

这一行代码中,ax.bar() 函数是在创建一个极径图形,其中:

  • theta 是弧度制的角度数组,它定义了每个扇形的中心角。
  • radii 是半径数组,它定义了每个扇形的半径大小。
  • width 是扇形的宽度。
  • bottom 是底部半径,它控制扇形与图形底部的距离。

此函数返回一个 bar 对象的数组,每个扇形都被创建为一个单独的 bar 对象。


3. bar.set_facecolor(plt.cm.viridis(r / 10.))

这行代码是在设置柱状图的颜色。其中 bar 是某个柱状图,plt.cm.viridis 是一种颜色映射(colormap),r / 10. 表示映射的颜色的程度。将 r / 10. 代入颜色映射函数得到的颜色,最后用 set_facecolor 函数设置给柱状图的颜色。

为什么10后面会有一个“.”?

这个“.”是用来强制将 r/10 这个表达式结果从整数转换为浮点数的。


4. bar.set_alpha(0.5)

for r,bar in zip(radii,bars):
    bar.set_facecolor(plt.cm.viridis(r / 10))
    bar.set_alpha(0.5)
plt.show()

zip()函数的用法?

zip(radii,bars) 函数将两个序列合并成一个元组列表,并将相同位置的元素组合成一个元组。例如:

radii = [1,2,3,4,5]
bars = ['a','b','c','d','e']
zip(radii,bars) = [(1,'a'), (2,'b'), (3,'c'), (4,'d'), (5,'e')]

bar.set_alpha(0.5)

set_alpha()是matplotlib中设置图形透明度的函数。透明度是0~1之间的数字,0表示完全透明,1表示完全不透明。


二、附录

import numpy as np
import matplotlib.pyplot as plt

N = 20
theta = np.linspace(0.0, 2 * np.pi, N , endpoint=False)
radii = 10 * np.random.rand(N)
width = np.pi /8 * np.random.rand(N)

ax = plt.subplot(111,projection='polar')
bars = ax.bar(theta,radii,width=width,bottom=0)

for r,bar in zip(radii,bars):
    bar.set_facecolor(plt.cm.viridis(r / 10))
    bar.set_alpha(0.5)
plt.show()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

No_one-_-2022

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值