matplotlib可視化系列之【坐標(biāo)系統(tǒng)】

了解 matplotlib 的坐標(biāo)系統(tǒng),繪制圖形的時候,如果需要在圖上添加一些額外的元素或者說明文字,
就可以很好的控制添加元素和說明文字的位置。

寧城ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

笛卡爾坐標(biāo)系和極坐標(biāo)系

matplotlib 使用2種坐標(biāo)系,笛卡爾坐標(biāo)系是默認(rèn)的,一般我們繪制的二維圖形基本都是笛卡爾坐標(biāo)系的。
比如各種柱狀圖,折線圖,散點(diǎn)圖等等。

但是,有些場景下,極坐標(biāo)能更好的展示分析的結(jié)果。
比如上面笛卡爾坐標(biāo)系下的柱狀圖,折線圖和散點(diǎn)圖在極坐標(biāo)系下顯示效果類似:

兩種坐標(biāo)系沒有高低之分,根據(jù)場景選擇合適的去展示。

圖形中的坐標(biāo)系

笛卡爾坐標(biāo)系和極坐標(biāo)系是宏觀上的坐標(biāo)系統(tǒng),對于每個具體的圖形,matplotlib 為了更好的在圖形上繪制各種元素,
基于笛卡爾坐標(biāo)系或者極坐標(biāo)系,定義了繪制圖形的4個坐標(biāo)系:

  1. FC:Figure coordinates,單位是像素
  2. DC:Data coordinates,單位與顯示數(shù)據(jù)的單位相同
  3. NFC:標(biāo)準(zhǔn)化的 FC,數(shù)據(jù)范圍 (0->1)
  4. NDC:標(biāo)準(zhǔn)化的 DC,數(shù)據(jù)范圍 (0->1)

在笛卡爾坐標(biāo)系下:

在極坐標(biāo)系下:

圖形中坐標(biāo)系之間的轉(zhuǎn)換

matplotlib 提供了接口,可以在4種坐標(biāo)系之間的坐標(biāo)是可以互相轉(zhuǎn)換的。

對于如下的示例圖形,提供的6種坐標(biāo)系之間的轉(zhuǎn)換接口如下:

fig = plt.figure(figsize=(6, 5), dpi=100)
ax = fig.add_subplot(1, 1, 1)
ax.set_xlim(0,360), ax.set_ylim(-1,1)
轉(zhuǎn)換方向 轉(zhuǎn)換方法
DC_to_FC ax.transData.transform
FC_to_DC ax.transData.inverted().transform
NDC_to_FC ax.transAxes.transform
FC_to_NDC ax.transAxes.inverted().transform
NFC_to_FC fig.transFigure.transform
FC_to_NFC fig.transFigure.inverted().transform

一共4種坐標(biāo)系,如果兩兩之間都可以互相轉(zhuǎn)換,應(yīng)該有12種情況,這里卻只有6種情況。
這是因?yàn)槠渌那闆r可以由上面這6種接口推導(dǎo)出來,比如:

  1. DC_to_NDC = FC_to_NDC(DC_to_FC)
  2. DC_to_NFC = FC_to_NFC(DC_to_FC)
  3. ... ... 等等

下面,用github上一段開源代碼示例看看轉(zhuǎn)換的結(jié)果:

# ----------------------------------------------------------------------------
# Title:   Scientific Visualisation - Python & Matplotlib
# Author:  Nicolas P. Rougier
# License: BSD
# ----------------------------------------------------------------------------
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.transforms as transforms

fig = plt.figure(figsize=(6, 5), dpi=100)
ax = fig.add_subplot(1, 1, 1)

ax.set_xlim(0, 360)
ax.set_ylim(-1, 1)

DC_to_FC = ax.transData.transform
FC_to_DC = ax.transData.inverted().transform

NDC_to_FC = ax.transAxes.transform
FC_to_NDC = ax.transAxes.inverted().transform

NFC_to_FC = fig.transFigure.transform
FC_to_NFC = fig.transFigure.inverted().transform


print(NFC_to_FC([1, 1]))  # (600,500)
print(NDC_to_FC([1, 1]))  # (540,440)
print(DC_to_FC([360, 1]))  # (540,440)

DC_to_NDC = lambda x: FC_to_NDC(DC_to_FC(x))

print(DC_to_NDC([0, -1]))  # (0.0, 0.0)
print(DC_to_NDC([180, 0]))  # (0.5, 0.5)
print(DC_to_NDC([360, 1]))  # (1.0, 1.0)

當(dāng)前標(biāo)題:matplotlib可視化系列之【坐標(biāo)系統(tǒng)】
鏈接地址:http://m.kartarina.com/article46/dsojoeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化服務(wù)器托管網(wǎng)站設(shè)計App設(shè)計手機(jī)網(wǎng)站建設(shè)響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
主站蜘蛛池模板: 免费无码中文字幕A级毛片| 熟妇人妻AV无码一区二区三区| 亚洲av永久无码精品国产精品| 中文字幕av无码专区第一页| 无码一区二区三区在线观看 | 国产成人综合日韩精品无码| 精品无码久久久久久久久水蜜桃| 国产精品无码无需播放器| 无码日韩精品一区二区免费| 亚洲国产精品无码久久一区二区| 亚洲av无码成人精品国产 | 无码国产精品一区二区免费式芒果| 精品爆乳一区二区三区无码av | 国产拍拍拍无码视频免费| 特级毛片内射www无码| 亚洲A∨无码一区二区三区| julia无码人妻中文字幕在线 | 亚洲成a人无码av波多野按摩 | 日韩av无码一区二区三区| 精品少妇人妻av无码专区| 亚洲日韩看片无码电影| 亚洲av无码专区在线播放 | 日韩AV无码一区二区三区不卡毛片 | 亚洲国产精品无码观看久久| 久久久国产精品无码免费专区 | 日韩AV无码精品一二三区| 精品国产V无码大片在线看| 久久久久亚洲av无码专区| 国产午夜无码精品免费看| 国产无遮挡无码视频免费软件| 国产精品无码DVD在线观看| 无码任你躁久久久久久久| 无码日韩人妻AV一区免费l| 亚洲一本大道无码av天堂| 亚洲AV无码一区二三区| 亚洲av麻豆aⅴ无码电影| 亚洲男人第一无码aⅴ网站| 一道久在线无码加勒比| 国产av无码专区亚洲av果冻传媒| 亚洲人成无码www久久久| 成人免费无码H在线观看不卡|