利用Python繪制好看的玫瑰花圖
今天主要給大家介紹如何用pyecharts畫各種漂亮的數(shù)學(xué)圖形
一、基本極坐標(biāo)圖
說(shuō)簡(jiǎn)單點(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í)必須通過(guò) 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,則長(zhǎng)度為n(m+sin(theta)),n和m都為常量,那么元組(長(zhǎng)度,角度)就可以在極坐標(biāo)中確定一個(gè)點(diǎn),把一系列的點(diǎn)放入列表中,并用折線圖連接起來(lái),就可以畫出漂亮的數(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)開(kāi)始的角度
type_:坐標(biāo)軸類型,'value'表示數(shù)值軸,適用于連續(xù)數(shù)據(jù)
is_clockwise:是否為順時(shí)針
TooltipOpts參數(shù)介紹:
trigger:觸發(fā)類型,'axis'表示坐標(biāo)軸觸發(fā),主要在柱狀圖,折線圖等會(huì)使用類目軸的圖表中使用
axis_pointer_type:指示器類型,'cross'表示十字準(zhǔn)星指示器
開(kāi)始畫玫瑰花圖
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()
是不是很漂亮,利用這種方法還可以畫出更多漂亮的圖形,趕緊動(dòng)手試試吧!
以上就是利用Python繪制好看的玫瑰花圖的詳細(xì)內(nèi)容,更多關(guān)于Python玫瑰花圖的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解決Tensorflow 使用時(shí)cpu編譯不支持警告的問(wèn)題
今天小編就為大家分享一篇解決Tensorflow 使用時(shí)cpu編譯不支持警告的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02python里的單引號(hào)和雙引號(hào)的有什么作用
在本篇文章里小編給大家分享的是一篇關(guān)于python里的單引號(hào)和雙引號(hào)的作用的相關(guān)內(nèi)容,需要的朋友們可以學(xué)習(xí)下。2020-06-06python將pandas datarame保存為txt文件的實(shí)例
今天小編就為大家分享一篇python將pandas datarame保存為txt文件的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02Python多進(jìn)程multiprocessing、進(jìn)程池用法實(shí)例分析
這篇文章主要介紹了Python多進(jìn)程multiprocessing、進(jìn)程池用法,結(jié)合實(shí)例形式分析了Python多進(jìn)程multiprocessing、進(jìn)程池相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-03-03python實(shí)現(xiàn)的簡(jiǎn)單FTP上傳下載文件實(shí)例
這篇文章主要介紹了python實(shí)現(xiàn)的簡(jiǎn)單FTP上傳下載文件的方法,實(shí)例分析了Python基于FTP模塊實(shí)現(xiàn)文件傳輸?shù)募记?需要的朋友可以參考下2015-06-0630行Python代碼實(shí)現(xiàn)高分辨率圖像導(dǎo)航的方法
這篇文章主要介紹了30行Python代碼實(shí)現(xiàn)高分辨率圖像導(dǎo)航的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05Python利用PyMuPDF實(shí)現(xiàn)PDF文件處理
PyMuPDF是MuPDF的Python綁定-“輕量級(jí)PDF和XPS查看器”。本文將利用PyMuPDF實(shí)現(xiàn)PDF的一些基本操作,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-05-05