Python繪制莖葉圖的示例代碼
簡(jiǎn)介
莖葉圖從外觀來(lái)看,更像是火柴,由基線、莖線、莖頭三部分構(gòu)成。最簡(jiǎn)單的示例如下
import numpy as np import matplotlib.pyplot as plt plt.stem(np.sin(np.arange(10))) plt.show()
參數(shù)
stem的完整參數(shù)如下
stem([locs,] heads, linefmt=None, markerfmt=None, basefmt=None, bottom=0, label=None, orientation='vertical', data=None)
其中
- locs和heads表示其x , y x,yx,y方向的值。如果只輸入一組數(shù)值,則默認(rèn)輸入的是heads。
- linefmt, markerfmt, basefmt 均為字符串,分別用于定義莖線、莖頭以及基線的格式。
- orientation 表示莖葉圖方向,默認(rèn)為’vertical’,若取值為’horizontal’,則莖葉圖調(diào)轉(zhuǎn)90°
- bottom 為基線的位置
- label 為圖例中使用的標(biāo)簽
linefmt和basefmt字符串由兩部分組成,分別用于設(shè)置莖線的顏色和類(lèi)型,第一部分格式為Cx,表示色環(huán)中第x種顏色;第二部分可選’-', ‘–’, ‘-.’, ‘:’,表示線的虛實(shí)類(lèi)型。當(dāng)然,第一部分直接采取顏色縮寫(xiě),比如r,g,b也是可以的。
markerfmt也是同樣的格式,但用于調(diào)整莖頭標(biāo)記點(diǎn)的字符與線型有所差異。其具體可選值存放在Line2D中
from matplotlib.lines import Line2D from pprint import pprint pprint(Line2D.markers)
打印結(jié)果是一個(gè)字典,列表如下
0 | ‘tickleft’ | 1 | ‘tickright’ | 2 | ‘tickup’ |
3 | ‘tickdown’ | 4 | ‘caretleft’ | 5 | ‘caretright’ |
6 | ‘caretup’ | 7 | ‘caretdown’ | 8 | ‘caretleftbase’ |
9 | ‘caretrightbase’ | 10 | ‘caretupbase’ | 11 | ‘caretdownbase’ |
‘’ | ‘nothing’ | ’ ’ | ‘nothing’ | ‘*’ | ‘star’ |
‘+’ | ‘plus’ | ‘,’ | ‘pixel’ | ‘.’ | ‘point’ |
‘1’ | ‘tri_down’ | ‘2’ | ‘tri_up’ | ‘3’ | ‘tri_left’ |
‘4’ | ‘tri_right’ | ‘8’ | ‘octagon’ | ‘<’ | ‘triangle_left’ |
‘>’ | ‘triangle_right’ | ‘D’ | ‘diamond’ | ‘H’ | ‘hexagon2’ |
None’ | ‘nothing’ | ‘P’ | ‘plus_filled’ | ‘X’ | ‘x_filled’ |
‘^’ | ‘triangle_up’ | ‘_’ | ‘hline’ | ‘d’ | ‘thin_diamond’ |
‘h’ | ‘hexagon1’ | ‘none’ | ‘nothing’ | ‘o’ | ‘circle’ |
‘p’ | ‘pentagon’ | ‘s’ | ‘square’ | ‘v’ | ‘triangle_down’ |
‘x’ | ‘x’ | ’ | ’ | ‘vline’ |
演示
下面演示一下不同格式的效果
lf = ['C0-', 'C1--', 'C2-.', 'C3:'] mf = ['C40', 'r*', 'g8', 'bD'] xs = np.sin(np.arange(10)) fig = plt.figure() for i in range(4): ax = fig.add_subplot(2,2,i+1) ax.stem(xs, linefmt=lf[i], markerfmt=mf[i]) plt.title(f"linefmt={lf[i]}, markerfmt={mf[i]}") plt.show()
效果如下
到此這篇關(guān)于Python繪制莖葉圖的示例代碼的文章就介紹到這了,更多相關(guān)Python莖葉圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺析Python中常見(jiàn)數(shù)據(jù)脫敏技術(shù)應(yīng)用與對(duì)比
數(shù)據(jù)脫敏通過(guò)對(duì)敏感數(shù)據(jù)進(jìn)行轉(zhuǎn)換,確保其在保護(hù)隱私的同時(shí)仍能用于開(kāi)發(fā),本文為大家整理了一些常見(jiàn)的數(shù)據(jù)脫敏技術(shù),感興趣的小伙伴可以了解下2025-02-02python+pygame實(shí)現(xiàn)簡(jiǎn)易五子棋小游戲的三種方式
這篇文章主要介紹了使用python實(shí)現(xiàn)簡(jiǎn)易五子棋小游戲,文中提供了三種實(shí)現(xiàn)方式,解決思路和部分實(shí)現(xiàn)代碼,感興趣的朋友可以參考下2023-03-03windows下Anaconda的安裝與配置正解(Anaconda入門(mén)教程)
最近很多朋友學(xué)習(xí)python,很多朋友也推薦使用anaconda這個(gè)工具,但安裝以后也不會(huì)使用,這里腳本之家小編就為大家整理一下比較詳細(xì)的教程,方便自己也方便需要的朋友,希望大家以后多多支持腳本之家2018-04-04Python sklearn KFold 生成交叉驗(yàn)證數(shù)據(jù)集的方法
今天小編就為大家分享一篇Python sklearn KFold 生成交叉驗(yàn)證數(shù)據(jù)集的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12python利用opencv調(diào)用攝像頭實(shí)現(xiàn)目標(biāo)檢測(cè)
這篇文章主要為大家介紹了python利用opencv調(diào)用攝像頭實(shí)現(xiàn)目標(biāo)檢測(cè)的示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Python torch.flatten()函數(shù)案例詳解
這篇文章主要介紹了Python torch.flatten()函數(shù)案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08聊聊Python代碼中if?__name__?==?‘__main__‘的作用是什么
一個(gè)python文件通常有兩種使用方法,第一是作為腳本直接執(zhí)行,第二是 import 到其他的python腳本中被調(diào)用執(zhí)行,這篇文章主要給大家介紹了關(guān)于Python代碼中if?__name__?==?‘__main__‘的作用是什么的相關(guān)資料,需要的朋友可以參考下2022-03-03Python實(shí)現(xiàn)微信好友的數(shù)據(jù)分析
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)微信好友的數(shù)據(jù)分析,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12