今天主要給大家介紹如何用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:是否為順時針
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()
是不是很漂亮,利用這種方法還可以畫出更多漂亮的圖形,趕緊動手試試吧!
-完-
,