Python画玫瑰图

第一步,读取数据;
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt 
# 使文字可以展示
plt.rcParams['font.sans-serif'] = ['SimHei']
jsonGlobal = pd.read_excel('E:/BaiduNetdiskDownload/Tableau课程所用数据/玩家综合能力雷达图数据.xlsx', )
# 取C得值画玫瑰图
pdat = jsonGlobal.iloc[2, 2:]
pdat

在这里插入图片描述

第二步,设置柱长;
# len就是我们极坐标的每个柱子的长度
pdat = pd.DataFrame({'value':pdat, 'len':1.2 ** (pdat+1)})
pdat

在这里插入图片描述

第三步,设置角度;
# 角度
l = pdat['len']
N = pdat.shape[0]
width = 2*np.pi/N
rad = np.cumsum([width]* N) - width/2
rad

在这里插入图片描述

第四步,设置颜色
# 颜色
import matplotlib as mpl
cm = mpl.cm.get_cmap('Reds')
colors = cm((rad - rad.min())/ (rad.max()-rad.min()))
colors

在这里插入图片描述

第五步,做图;
普通型
#  作图
plt.figure(figsize = (6, 8))
ax = plt.subplot(projection = 'polar') #极坐标
ax.bar(rad, l, width = width, color = colors, alpha = 1)

在这里插入图片描述

中央空白型
plt.figure(figsize = (6, 8))
ax = plt.subplot(projection = 'polar') #极坐标
ax.set_ylim(-1,np.ceil(l.max())+1)
ax.bar(rad, l, width = width, color = colors, alpha = 1)

在这里插入图片描述

半透明型
plt.figure(figsize = (6, 8))
ax = plt.subplot(projection = 'polar') #极坐标
ax.bar(rad,1,width = width,color = colors, alpha=0.5)

在这里插入图片描述

第六步,添加标签,美化图形。
# 设置 标签颜色、位置
txt_settings = {
            'span':{0:0.5, 1:0.5, 2:0.5, 3: 0.5},
            'color':{0:'black', 1:'black', 2:'black', 3: 'black'},
            'rot_adj' : {0:-90, 1: -90, 2: 90, 3:90},
            'ha':{0:'right', 1: 'right',2:'left',3: 'left'}
            }
# 标签值
txt_label = ['{} {}'.format(x, y) 
                 for x, y in zip(pdat.index, pdat['value'])]

#  作图
plt.figure(figsize = (6,8))
ax = plt.subplot(projection = 'polar')#极坐标图绘制
ax.set_ylim(-1,np.ceil(l.max()) + 1)
ax.set_theta_zero_location('N') #设置极坐标的起点(即0度)在正上方向   
ax.grid(False)
ax.spines['polar'].set_visible(False)#不显示极坐标最外的圆形
ax.set_yticks([]) # 不显示坐标间隔
ax.set_thetagrids([])

bars = ax.bar(rad,l,width = width, color = colors, alpha = 1)
ax.bar(rad,1,width = width,color = 'white', alpha = 0.3)
ax.bar(rad,1.5,width = width, color = 'white', alpha = 0.2)
# 添加文本标注
for i in np.arange(N):
    direc = rad[i]//(np.pi/2)
    ax.text(rad[i], 
            l[i] + txt_settings['span'][direc] ,
            txt_label[i],
            rotation = rad[i] * 180 /np.pi + txt_settings['rot_adj'][direc],
            color = txt_settings['color'][direc], 
            ha = txt_settings['ha'][direc], va = 'center',
            rotation_mode = 'anchor',  # this parameter is a trick
            alpha = 1, 
            fontweight = 'bold', size = 10) 

在这里插入图片描述

  • 6
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: 为了玫瑰花,您可以使用 Python 的绘图库如 Matplotlib。下面是一个简单的例子: ``` import numpy as np import matplotlib.pyplot as plt t = np.linspace(0, 2 * np.pi, 100) x = np.sin(t) y = np.cos(t) plt.plot(x, y) plt.show() ``` 这段代码定义了一个 $\theta$ 的变量 $t$,在 $[0, 2\pi]$ 范围内取 100 个值,然后根据 $\sin(\theta)$ 和 $\cos(\theta)$ 得到 $x$ 和 $y$ 坐标。最后使用 Matplotlib 库绘制出这些坐标对应的曲线。 ### 回答2: Python可以使用turtle模块来玫瑰花。turtle模块是一种图形绘制工具,它可以帮助我们通过编程来控制一个小海龟的运动,进而出各种图形。 下面是用Python玫瑰花的代码示例: ```python import turtle # 设置布的大小和背景颜色 turtle.screensize(800, 600) turtle.bgcolor("black") # 设置笔的颜色和形状 turtle.color("red") turtle.shape("turtle") # 定义玫瑰花的函数 def draw_rose(): for i in range(180): # 设置笔的运动方向和速度 turtle.right(1) turtle.forward(2) turtle.right(90) turtle.forward(200) # 调用玫瑰花的函数 draw_rose() ``` 运行以上代码,就可以在turtle的布上看到一个绘制的玫瑰花。其中,使用for循环来让海龟旋转180度,通过turtle.right()函数来控制旋转的角度,turtle.forward()函数来控制笔的运动距离,从而绘制出玫瑰花的形状。 这只是一个简单的示例,你也可以根据自己的需求和创造力来设计更加复杂和炫酷的玫瑰花图案。 ### 回答3: Python是一种功能强大的编程语言,可以用来绘制各种形状和图像,包括玫瑰花。要用Python绘制玫瑰花,我们可以使用turtle库来操作绘图窗口,并使用数学函数来计算绘制的路径。 首先,我们需要导入turtle库来绘制图形,并设置绘图窗口的大小和背景颜色。然后,我们可以定义一个函数来绘制玫瑰花的花瓣。在这个函数中,我们使用turtle的旋转和移动操作来绘制花瓣的形状,然后使用循环来重复绘制花瓣的数量。最后,我们可以调用这个函数来绘制整个玫瑰花。 下面是一个简单的示例代码: ``` import turtle import math # 设置绘图窗口的大小和背景颜色 turtle.setup(800, 600) turtle.bgcolor("black") # 定义绘制花瓣的函数 def draw_petal(): turtle.seth(60) # 设置绘制的初始角度 for i in range(2): turtle.circle(50, 60) # 绘制弧线 turtle.left(120) # 旋转角度 # 绘制玫瑰花 turtle.color("red") # 设置笔颜色为红色 turtle.speed(10) # 设置绘图速度为最快 for i in range(6): draw_petal() turtle.left(60) # 旋转角度 turtle.hideturtle() # 隐藏笔 turtle.done() # 结束绘图 ``` 运行以上代码,就可以看到一个使用Python绘制的玫瑰花。代码中使用turtle库来操作绘图窗口,使用循环和数学函数来计算并绘制花瓣的形状,最后调用draw_petal函数和旋转操作来绘制整个玫瑰花。这只是一个简单的示例,你可以根据自己的需求和创意来进一步改进和美化玫瑰花的绘制效果。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值