利用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


猜你喜欢
- 前言值类型:所有像int、float、bool和string这些类型都属于值类型,使用这些类型的变量直接指向存在内存中的值,值类型的变量的值
- 本文为大家分享了解决Mysql存储引擎MyISAM常见问题的方法,供大家参考,具体内容如下一、处理MyISAM存储引擎的表损坏在使用MySQ
- 推荐系统MostPopular算法的Python实现MostPopular 算法的 是指对每个用户都选择出当前流行度最高的Top-K个物品进
- 前言本文的操作环境:ubuntu,Python2.7,采用的是Pycharm进行代码编辑,个人很喜欢它的代码自动补齐功能。示例图如上图,我们
- IE的for...in循环存在严重的缺陷,除了性能低下外,有许多属性不可遍历,著名有这三兄弟:constructor ,toString ,
- binlog 就是binary log,二进制日志文件,这个文件记录了mysql所有的dml操作。通过binlog日志我们可以做数据恢复,做
- 本节内容0、列表常用功能汇总1、定义列表2、访问列表中的元素3、切片4、追加5、插入6、修改7、拷贝8、删除9、扩展10、统计11、翻转12
- python标准库OS模块简介os就是“operating system”的缩写,顾名思义,os模块提供的就是各种 Python 程序与操作
- 一、os模块os 模块是 Python中的一个内置模块,也是 Python中整理文件和目录最为常用的模块。该模块提供了非常丰富的方法用来处理
- 前言问题:我们在放大图片的过程中,放大的目标图像和原图图像之间会存在不同。放大的基本思想:第一步:将目标图像进行缩小到原图像的尺寸,虚拟的将
- 1 创建JupyterLab运行脚本首先找到jupyter-lab命令的位置,一般在~/.local/bin/下,可以创建shell脚本au
- 1 案例描述输入三个整数x,y,z,请把这三个数由小到大输出。2 Python实现2.1 方法一(官方)L = []for i in ran
- 目录全局中间件应用中间件路由中间件控制器中间件中间件传参6.0中间件分为系统中间件和应用中间件,系统中间件为核心框架内置的中间件,应用中间件
- python 对excel的 读入 与 改写(对比xlwt、openpyxl、xlrd)xlwt不支持写xlsx文件。openpyxl不支持
- 前言Python提供了多个内置模块用于操作日期时间,像 calendar,time,datetime。time模块提供的接口与C标准库 ti
- 1)正则表达式的使用。 #正则表达式的模块 import re #正则表达式 rePattern = '.*[0-9]{4}'
- 这年头如果用 python3 做条形码的,肯定(推荐)用 pystrich 。这货官方文档貌似都没写到支持 Code128 ,但是居然有这个
- MySQL中删除数据表是非常容易操作的, 但是你再进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失。语法以下为删除MySQL数
- CREATE INDEX Syntax CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
- format()函数"""测试 format()函数"""def t