利用Python繪制好看的玫瑰花圖
今天主要給大家介紹如何用pyecharts畫各種漂亮的數(shù)學(xué)圖形

一、基本極坐標(biāo)圖
說簡單點(diǎn),基本極坐標(biāo)圖就是圓形的散點(diǎn)圖(柱狀圖或折線圖),代碼如下:
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="基本極坐標(biāo)圖"))
)
c.render_notebook()

數(shù)據(jù)data是1個(gè)列表,列表內(nèi)的元素為元組,單個(gè)元組有2個(gè)數(shù)據(jù),第一個(gè)數(shù)據(jù)為半徑,第二個(gè)數(shù)據(jù)相當(dāng)于角度,這樣就好理解了
也可把type改為bar
c?=?(
????Polar()
????.add("",?data,?type_="bar",?label_opts=opts.LabelOpts(is_show=False))
????.set_global_opts(title_opts=opts.TitleOpts(title="基本極坐標(biāo)圖"))
)
c.render_notebook()

同理也可以改成折線(line)等,大家可以自己嘗試一下。
二、極半徑圖
在極坐標(biāo)中引入柱狀圖
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,??#數(shù)據(jù)項(xiàng)
????????????????????????????????????????????type_="category"??#坐標(biāo)軸類型,類目軸,適用于離散的類目數(shù)據(jù),為該類型時(shí)必須通過 data 設(shè)置類目數(shù)據(jù)。
???????????????????????????????????????????),
????????angleaxis_opts=opts.AngleAxisOpts(is_clockwise=True,?#是否順時(shí)針排布
??????????????????????????????????????????max_=10????????????#坐標(biāo)軸刻度最大值
?????????????????????????????????????????),
????)
????.add("A",?[1,?2,?3,?4,?3,?5,?1],?type_="bar")
????.set_global_opts(title_opts=opts.TitleOpts(title="Polar-RadiusAxis"))
)
c.render_notebook()

參數(shù)介紹
RadiusAxisOpts:極坐標(biāo)系徑向軸配置項(xiàng)
AngleAxisOpts:極坐標(biāo)系角度軸配置項(xiàng)
三、畫玫瑰花圖
首先我們要引入數(shù)學(xué)中的sin函數(shù),假設(shè)角度為theta,則長度為n(m+sin(theta)),n和m都為常量,那么元組(長度,角度)就可以在極坐標(biāo)中確定一個(gè)點(diǎn),把一系列的點(diǎn)放入列表中,并用折線圖連接起來,就可以畫出漂亮的數(shù)學(xué)圖形。
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="極坐標(biāo)雙數(shù)值軸"), ????) ) c.render_notebook()

AngleAxisOpts參數(shù)介紹:
start_angle:極坐標(biāo)開始的角度
type_:坐標(biāo)軸類型,'value'表示數(shù)值軸,適用于連續(xù)數(shù)據(jù)
is_clockwise:是否為順時(shí)針
TooltipOpts參數(shù)介紹:
trigger:觸發(fā)類型,'axis'表示坐標(biāo)軸觸發(fā),主要在柱狀圖,折線圖等會使用類目軸的圖表中使用
axis_pointer_type:指示器類型,'cross'表示十字準(zhǔn)星指示器
開始畫玫瑰花圖
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()

是不是很漂亮,利用這種方法還可以畫出更多漂亮的圖形,趕緊動手試試吧!
以上就是利用Python繪制好看的玫瑰花圖的詳細(xì)內(nèi)容,更多關(guān)于Python玫瑰花圖的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python?Flask框架實(shí)現(xiàn)小紅書圖片無水印解析下載
這篇文章主要為大家介紹了Python?Flask框架實(shí)現(xiàn)小紅書圖片無水印解析下載,需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
python numpy.power()數(shù)組元素求n次方案例
這篇文章主要介紹了python numpy.power()數(shù)組元素求n次方案例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Python實(shí)現(xiàn)冒泡排序算法的完整實(shí)例
這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn)冒泡排序算法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
基于Python實(shí)現(xiàn)人臉識別相似度對比功能
人臉識別技術(shù)是一種通過計(jì)算機(jī)對人臉圖像進(jìn)行分析和處理,從而實(shí)現(xiàn)自動識別和辨認(rèn)人臉的技術(shù),隨著計(jì)算機(jī)視覺和模式識別領(lǐng)域的快速發(fā)展,人臉識別技術(shù)取得了長足的進(jìn)步,本文給大家介紹了基于Python實(shí)現(xiàn)人臉識別相似度對比功能,感興趣的朋友可以參考下2024-01-01

