中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Python可視化:用Matplotlib畫個(gè)玫瑰圖

第一次寫教程的,python小白,求不噴,求大神指點(diǎn)指點(diǎn)

之前看了很多關(guān)于繪制玫瑰圖的教程,有基于R的ggplot2的或者用AI的藝術(shù)畫筆做的,但是似乎很少有用malplotlib來(lái)做,最近剛好研究下matplotlib里的極坐標(biāo)的用法,于是模仿著一些圖,嘗試了一下畫玫瑰圖,感覺效果還行。先Po原圖和成品

網(wǎng)易數(shù)獨(dú)的
DT財(cái)經(jīng)的

以下是嘗試模仿的成品:

emmmm,差不多 差不多就行,哈哈哈 100%還原太麻煩了

文字的和其他的修飾,作者實(shí)在嫌麻煩,有興趣的朋友,可以自己嘗試一下

下面進(jìn)入教學(xué)時(shí)間,大家鼓掌

1.什么是玫瑰圖

玫瑰圖,玫瑰圖,就是長(zhǎng)得像玫瑰一樣美麗的圖(一耳光,pia扇飛了,不要說(shuō)廢話)

emmm,玫瑰圖其實(shí)就是被掰彎了的柱狀圖(o(*////▽////*)q的捂臉)

2.怎么掰彎了個(gè)筆直的柱狀圖

用愛(又是一耳光,能不能正經(jīng)點(diǎn)這位作者)

emmm, 把在笛卡爾坐標(biāo)系里的柱狀圖,畫到極坐標(biāo)系去

3.什么是極坐標(biāo)

長(zhǎng)這樣:

一個(gè)裝逼的圓形

傳統(tǒng)的笛卡爾坐標(biāo)是這樣的:

最熟悉的陌生人

笛卡爾坐標(biāo)系中,靠x,y兩個(gè)值能確定一個(gè)點(diǎn)的位置,而在極坐標(biāo)中,考的是r(半徑),θ(角度)來(lái)確定一個(gè)點(diǎn)的位置。

知識(shí)點(diǎn):想把柱狀圖從笛卡爾家搬到極坐標(biāo)家去,重要的就是算好θ

4.先畫一個(gè)90度半圓

為了能打好基礎(chǔ),我們先來(lái)畫個(gè)如下半圓。

import numpy as np
import matplotlib.pyplot as plt
y=20
x=np.pi/2
w=np.pi/2
color=(206/255,32/255,69/255)
edgecolor=(206/255,32/255,69/255)
fig=plt.figure(figsize=(13.44,7.5))#建立一個(gè)畫布
ax = fig.add_subplot(111,projection='polar')#建立一個(gè)坐標(biāo)系,projection='polar'表示極坐標(biāo)
ax.bar(left=x, height=y, width=w,bottom=10,color=color,edgecolor=color)
fig.savefig('E:\\test.png',dpi=400,bbox_inches='tight',transparent=True)

可以很清楚的發(fā)現(xiàn)
在笛卡爾坐標(biāo)系中,一個(gè)柱狀圖由left,bottom,height,width四個(gè)參數(shù)決定位置和大小left決定了左邊界,bottom決定了下邊界,height決定了長(zhǎng)度,width決定了寬度.

對(duì)應(yīng)到笛卡爾坐標(biāo)系中,left決定了扇形的中線位置,然后height決定扇形的長(zhǎng)度,bottom決定了下邊界,width決定了扇形的寬度。

能在目標(biāo)位置畫上一個(gè)扇形,基本上我們就能開始畫玫瑰圖辣!回到我們的例子中來(lái)

我們來(lái)分析一下

這個(gè)圖由十個(gè)大扇形構(gòu)成底圖,然后中間在加上2個(gè)小的扇形。

所以先計(jì)算,十個(gè)大扇形的位置,思路大概是,把一個(gè)圓分成十份,然后找到十個(gè)扇形中線對(duì)應(yīng)的θ。

x1=[np.pi/10+np.pi*i/5 for i in range(1,11)]

然后在計(jì)算20個(gè)小扇形的位置

x2=[np.pi/20+np.pi*i/5 for i in range(1,11)]x3=[3*np.pi/20+np.pi*i/5 for i in range(1,11)]

由于作者很怕麻煩,所以y值就隨機(jī)生成了

先畫第一層,最外圈的放文字的位置。

為了能畫出線來(lái),作者用重疊的方式,先畫個(gè)半徑是7000,在畫個(gè)半徑是6000,然后

x1=[np.pi/10+np.pi*i/5 for i in range(1,11)]x2=[np.pi/20+np.pi*i/5 for i in range(1,11)]x3=[3*np.pi/20+np.pi*i/5 for i in range(1,11)]y1=[7000 for i in range(0,10)]y2=[6000 for i in range(0,10)]fig=plt.figure(figsize=(13.44,7.5))ax = fig.add_subplot(111,projection='polar')ax.axis('off')ax.bar(left=x1, height=y1,width=np.pi/5,color=(220/255,222/255,221/255),edgecolor=(204/255,206/255,205/255))ax.bar(left=x1, height=y2,width=np.pi/5,color='w',edgecolor=(204/255,206/255,205/255))
random.seed(100)y4=[random.randint(4000,5500) for i in range(10)]y5=[random.randint(3000,5000) for i in range(10)]ax.bar(left=x2, height=y4,width=np.pi/10,color=(206/255,32/255,69/255),edgecolor=(206/255,32/255,69/255))ax.bar(left=x3, height=y5,width=np.pi/10,color=(34/255,66/255,123/255),edgecolor=(34/255,66/255,123/255))

然后我們?cè)诋嬛虚g的

最后在在中間畫一個(gè)白色的小圓

y6=[2000 for i in range(0,10)]ax.bar(left=x1, height=y6,width=np.pi/5,color='w',edgecolor='w')

大功告成,撒花

本文已由原作者授權(quán)

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
極坐標(biāo)系在數(shù)據(jù)可視化中的巧妙運(yùn)用
Matplotlib畫3D圖
在數(shù)據(jù)坐標(biāo)系中繪制無(wú)縮放圖像
Python&Matlab科研繪圖大比拼(1)
python matplotlib繪圖設(shè)置坐標(biāo)軸刻度、文本
Python之?dāng)?shù)據(jù)分析(三維立體圖像、極坐標(biāo)系、半對(duì)數(shù)坐標(biāo))
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服