利用Python绘制好看的玫瑰花图
作者:小dull鸟 发布时间:2022-01-05 00:14:56
标签:Python,玫瑰花图
今天主要给大家介绍如何用pyecharts画各种漂亮的数学图形
一、基本极坐标图
说简单点,基本极坐标图就是圆形的散点图(柱状图或折线图),代码如下:
import random
from pyecharts import options as opts
from pyecharts.charts import Polar
data = [(i, random.randint(1, 100)) for i in range(101)]
c = (
Polar()
.add("", data, type_="scatter", label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title="基本极坐标图"))
)
c.render_notebook()
数据data是1个列表,列表内的元素为元组,单个元组有2个数据,第一个数据为半径,第二个数据相当于角度,这样就好理解了
也可把type改为bar
c = (
Polar()
.add("", data, type_="bar", label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title="基本极坐标图"))
)
c.render_notebook()
同理也可以改成折线(line)等,大家可以自己尝试一下。
二、极半径图
在极坐标中引入柱状图
from pyecharts import options as opts
from pyecharts.charts import Polar
from pyecharts.faker import Faker
c = (
Polar()
.add_schema(
radiusaxis_opts=opts.RadiusAxisOpts(data=Faker.week, #数据项
type_="category" #坐标轴类型,类目轴,适用于离散的类目数据,为该类型时必须通过 data 设置类目数据。
),
angleaxis_opts=opts.AngleAxisOpts(is_clockwise=True, #是否顺时针排布
max_=10 #坐标轴刻度最大值
),
)
.add("A", [1, 2, 3, 4, 3, 5, 1], type_="bar")
.set_global_opts(title_opts=opts.TitleOpts(title="Polar-RadiusAxis"))
)
c.render_notebook()
参数介绍
RadiusAxisOpts:极坐标系径向轴配置项
AngleAxisOpts:极坐标系角度轴配置项
三、画玫瑰花图
首先我们要引入数学中的sin函数,假设角度为theta,则长度为n(m+sin(theta)),n和m都为常量,那么元组(长度,角度)就可以在极坐标中确定一个点,把一系列的点放入列表中,并用折线图连接起来,就可以画出漂亮的数学图形。
import math
import pyecharts.options as opts
from pyecharts.charts import Polar
data = []
for i in range(0, 101):
theta = i / 100 * 360
r = 5 * (1 + math.sin(theta / 180 * math.pi))
data.append([r, theta])
c=(
Polar()
.add(series_name="line", data=data, label_opts=opts.LabelOpts(is_show=False))
.add_schema(
angleaxis_opts=opts.AngleAxisOpts(
start_angle=0, type_="value", is_clockwise=True
)
)
.set_global_opts(
tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
title_opts=opts.TitleOpts(title="极坐标双数值轴"),
)
)
c.render_notebook()
AngleAxisOpts参数介绍:
start_angle:极坐标开始的角度
type_:坐标轴类型,'value'表示数值轴,适用于连续数据
is_clockwise:是否为顺时针
TooltipOpts参数介绍:
trigger:触发类型,'axis'表示坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用
axis_pointer_type:指示器类型,'cross'表示十字准星指示器
开始画玫瑰花图
import math
from pyecharts import options as opts
from pyecharts.charts import Polar
data = []
for i in range(401):
t = i / 180 * math.pi
r = math.sin(9*t)
data.append([r, i])
c = (
Polar()
.add_schema(angleaxis_opts=opts.AngleAxisOpts(start_angle=0, min_=0))
.add("flower", data, label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title="Polar-Flower"))
)
c.render_notebook()
是不是很漂亮,利用这种方法还可以画出更多漂亮的图形,赶紧动手试试吧!
来源:https://mp.weixin.qq.com/s/1yowChbtAVbfqqwnmmDPCw
0
投稿
猜你喜欢
- 当一个函数进行完成后需要重定向到一个带参数的urlURLpath('peopleapply/<int:jobid>/
- 1.表达式操作符Table 1 算术操作符操作符 语法 含义+ a + b 相加 - a - b 相减 - - a
- Python函数和代码复用什么是函数:  函数是一段具有特定功能的,可重用的语句组,通过函数名来表示和调
- 这篇文章主要介绍了python框架flask表单实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 今天在项目中向数据库的CLOB属性插入一段篇文章(1000~2000)字就会报一个字符串过长的错误。网上说用流来处理,没有这么做。这像是一个
- 介绍本文主要介绍Python中列表生成式的基本知识和使用生成列表要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- Yahoo发布了一款基于FireFox的插件,名叫YSlow,这个插件可以分析网站的页面,并告诉你为了提高网站性能,如何基于某些规则而进行优
- 聚类今天说K-means聚类算法,但是必须要先理解聚类和分类的区别,很多业务人员在日常分析时候不是很严谨,混为一谈,其实二者有本质的区别。分
- 建立网站时,有很多理由让你遵循Web标准。企业、开发人员和用户都会从兼容标准的做法中获益。这里列举了一些最令人信服的理由,为什么所有网站都应
- 如下所示:data_array = np.loadtxt(filename, #文件名  
- 一、概念梳理链表是计算机科学里面应用应用最广泛的数据结构之一。它是最简单的数据结构之一,同时也是比较高阶的数据结构(例如棧、环形缓冲和队列)
- 本文介绍基于PowerShell语言,对文件夹中全部文件的名称加以批量替换、修改的方法。在之前的文章基于Python实现自动批量修改文件名称
- 使用Python内置函数:bin()、oct()、int()、hex()可实现进制转换。 先看Python官方文档中对这几个内置函数的描述:
- 在上一篇Python接口自动化测试系列文章:Python接口自动化之浅析requests模块get请求,介绍了requests模块、get请
- 最近在一个python工具中需要实现串口自动触发工作的功能,之前只在winform上面实现,今天使用python试试。这里简单记一下:首先用
- 1.核心代码使用py2neo连接neo4j的方法:from py2neo import Graphgraph = Graph("h
- 一、开头匹配从字符串开头开始匹配返回匹配对象;如果找不到匹配,则为Noneimport reprint(re.match('飞兔小哥
- 1、说明创建堆有两种基本方法:heappush() 和 heapify()。当使用heappush()时,当新元素添加时,堆得顺序被保持了。
- 在读取dict的key和value时,如果key不存在,就会触发KeyError错误,如:t = { 'a':
- 前言这个只是使用面向对象的方法写的 构思和学生管理系统(JSON模块)是一样的file_manager.py""&quo