Matplotlib 中文用戶指南 3.9 路徑效果指南

路徑效果指南

原文:Path effects guide

譯者:飛龍

協(xié)議:CC BY-NC-SA 4.0

Matplotlib 的patheffects模塊提供了一些功能吗垮,用于將多個繪制層次應用到任何藝術(shù)家机错,并可以通過路徑呈現(xiàn)。

可以對其應用路徑效果的藝術(shù)家包括PatchLine2DCollection,甚至文本呀忧。 每個藝術(shù)家的路徑效果都可以通過set_path_effects方法(set_path_effects)控制,它需要一個AbstractPathEffect的可迭代實例溃睹。

最簡單的路徑效果是普通效果而账,它簡單地繪制藝術(shù)家,并沒有任何效果:

import matplotlib.pyplot as plt
import matplotlib.patheffects as path_effects

fig = plt.figure(figsize=(5, 1.5))
text = fig.text(0.5, 0.5, 'Hello path effects world!\nThis is the normal '
                          'path effect.\nPretty dull, huh?',
                ha='center', va='center', size=20)
text.set_path_effects([path_effects.Normal()])
plt.show()

添加陰影

比正常效果更有趣的路徑效果是陰影因篇,我們可以應用于任何基于路徑的藝術(shù)家泞辐。 SimplePatchShadowSimpleLineShadow類通過在基本藝術(shù)家下面繪制填充補丁或線條補丁來實現(xiàn)它:

import matplotlib.pyplot as plt
import matplotlib.patheffects as path_effects

text = plt.text(0.5, 0.5, 'Hello path effects world!',
                path_effects=[path_effects.withSimplePatchShadow()])

plt.plot([0, 3, 2, 5], linewidth=5, color='blue',
         path_effects=[path_effects.SimpleLineShadow(),
                       path_effects.Normal()])
plt.show()

請注意本示例中設置路徑效果的兩種方法。 第一個使用with *類竞滓,來包含“正掣篮穑”效果之后的所需功能,而后者明確定義要繪制的兩個路徑效果商佑。

讓藝術(shù)家脫穎而出

使藝術(shù)家在視覺上脫穎而出的一個好方法是锯茄,在實際藝術(shù)家下面以粗體顏色繪制輪廓。 Stroke路徑效果使其相對簡單:

import matplotlib.pyplot as plt
import matplotlib.patheffects as path_effects

fig = plt.figure(figsize=(7, 1))
text = fig.text(0.5, 0.5, 'This text stands out because of\n'
                          'its black border.', color='white',
                          ha='center', va='center', size=30)
text.set_path_effects([path_effects.Stroke(linewidth=3, foreground='black'),
                       path_effects.Normal()])
plt.show()

重要的是注意,這種效果能夠工作肌幽,因為我們已經(jīng)繪制兩次文本路徑:一次使用粗黑線晚碾,然后另一次使用原始文本路徑在上面繪制。

您可能已經(jīng)注意到牍颈,Stroke迄薄、SimplePatchShadowSimpleLineShadow的關鍵字不是通常的Artist關鍵字(例如facecoloredgecolor等)。這是因為使用這些路徑效果煮岁,我們操作了 matplotlib 的較低層讥蔽。實際上,接受的關鍵字是用于matplotlib.backend_bases.GraphicsContextBase實例的關鍵字画机,它們?yōu)橐子趧?chuàng)建新的后端而設計冶伞,而不是用于其用戶界面。

對路徑效果藝術(shù)家的更大控制

如前所述步氏,一些路徑效果的操作級別低于大多數(shù)用戶操作响禽,這意味著設置關鍵字(如facecoloredgecolor)會導致AttributeError。幸運的是荚醒,有一個通用的PathPatchEffect路徑效果芋类,它創(chuàng)建一個具有原始路徑的PathPatch類。此效果的關鍵字與PathPatch相同:

import matplotlib.pyplot as plt
import matplotlib.patheffects as path_effects

fig = plt.figure(figsize=(8, 1))
t = fig.text(0.02, 0.5, 'Hatch shadow', fontsize=75, weight=1000, va='center')
t.set_path_effects([path_effects.PathPatchEffect(offset=(4, -4), hatch='xxxx',
                                                  facecolor='gray'),
                    path_effects.PathPatchEffect(edgecolor='white', linewidth=1.1,
                                                 facecolor='black')])
plt.show()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末界阁,一起剝皮案震驚了整個濱河市侯繁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌泡躯,老刑警劉巖贮竟,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異较剃,居然都是意外死亡咕别,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門写穴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惰拱,“玉大人,你說我怎么就攤上這事啊送〕ザ蹋” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵删掀,是天一觀的道長。 經(jīng)常有香客問我导街,道長披泪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任搬瑰,我火速辦了婚禮款票,結(jié)果婚禮上控硼,老公的妹妹穿的比我還像新娘。我一直安慰自己艾少,他們只是感情好卡乾,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著缚够,像睡著了一般幔妨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谍椅,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天误堡,我揣著相機與錄音,去河邊找鬼雏吭。 笑死锁施,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的杖们。 我是一名探鬼主播悉抵,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼摘完!你這毒婦竟也來了姥饰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤描焰,失蹤者是張志新(化名)和其女友劉穎媳否,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體荆秦,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡篱竭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了步绸。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掺逼。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖瓤介,靈堂內(nèi)的尸體忽然破棺而出吕喘,到底是詐尸還是另有隱情,我是刑警寧澤刑桑,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布氯质,位于F島的核電站,受9級特大地震影響祠斧,放射性物質(zhì)發(fā)生泄漏闻察。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望辕漂。 院中可真熱鬧呢灶,春花似錦、人聲如沸钉嘹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽跋涣。三九已至缨睡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間仆潮,已是汗流浹背宏蛉。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留性置,地道東北人拾并。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像鹏浅,于是被迫代替她去往敵國和親嗅义。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容