用Python進行數據可視化的第一步,全面詳解matplotlib中樣式屬性

2021-01-07 python高手養成

上篇內容我們詳細了解了Python使用matplotlib繪製一個複雜的正弦函數的方法(參見),上篇內容我們提到了一個屬性'b-',簡單介紹了它是用來設置線條顏色和樣式的屬性。今天,我們詳細了解一下Python中的matplotlib庫還有哪些常見的線條樣式和顏色屬性。

有哪些樣式呢?

一個例子

我們還是使用上篇中繪製的正弦函數為例。先來繪製一個正弦函數。將上篇的完整代碼附上。

繪製一個正弦函數

import matplotlib.pyplot as plt

import numpy as np

plt.rcParams['font.sans-serif']=['SimHei'] # 通過字體設置使其支持中文

plt.rcParams['axes.unicode_minus']=False # 用來正常顯示圖形中的負號

#設置輸出的圖片大小

figsize = 8,8

figure, ax = plt.subplots(figsize=figsize)

x = np.linspace(-np.pi,np.pi,512,endpoint=True) #獲取x坐標

sin,cos = np.sin(x), np.cos(x) #獲取y坐標

ax = plt.plot(x,sin,"r-",lw=2.5,label="正弦Sin()")

# 拉伸並重設刻度

plt.xlim(x.min()*1.5,x.max()*1.5)

plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])

plt.yticks([-1,0,1])

# 隱藏不需要的框線

ax=plt.gca() #獲取Axes對象

ax.spines['right'].set_color('none') #隱藏右邊界

ax.spines['top'].set_color('none') #隱藏上邊界

# 添加標題和備註信息

plt.title("使用matplotlib繪製正弦曲線",fontsize=24,color="red")

plt.text(+2.5,-1.3,"By:Python高手養成",fontsize=14,color="green")

# 平移坐標軸

ax.xaxis.set_ticks_position('bottom') #x軸坐標刻度設置在坐標軸下面

ax.spines['bottom'].set_position(('data',0)) #x軸坐標軸平移至經過零點(0,0)位置

ax.yaxis.set_ticks_position('left') #y軸坐標刻度設置在坐標軸下面

ax.spines['left'].set_position(('data',0)) #y軸坐標軸平移至經過零點(0,0)位置

# 顯示圖例

plt.legend(loc="upper left",fontsize=14)

# 批量獲取刻度並設置樣式

for label in ax.get_xticklabels()+ax.get_yticklabels(): #獲取刻度

label.set_fontsize(18)

label.set_bbox(dict(facecolor='pink', edgecolor='g', alpha=0.5))

plt.grid()

plt.savefig('matplotlib繪製正弦圖.jpg', dpi=300)

plt.show() #顯示圖表

運行效果如下所示

程序運行效果展示

今天要了解的是黑體部分plt.plot(x,sin,"r-",lw=2.5,label="正弦Sin()"),我們把上篇內容中的'b-'改成了'r-'改變了線條的顏色。

函數實現什麼功能?

函數幹了什麼?

函數完整描述如下

plt.plot(x, y, label = "test", linewidth = '1', color=' red ', linestyle=':', marker='|')

該函數的作用是:將y與x繪製為直線或標記。

x:點的橫坐標,可迭代對象

y:點的縱坐標,可迭代對象

linewidth:設置線的粗細

label:設置圖例,需要調用 plt 或子圖的 legend 方法

color:顏色

linestyle:線的樣式

marker:點的形狀

下面,我們看下文檔中對於這些樣式的具體定義

文檔中如何定義這些屬性

linestyle參數屬性

'-' solid line style 實線樣式

'--' dashed line style 虛線樣式

'-.' dash-dot line style 點劃線樣式

':' dotted line style 虛線樣式

marker參數屬性

'.' 點標記

',' 像素標記

'o' 圓標記

'v' 三角向下標記

'^' 三角向上標記

'<' 三角向左標記

'>' 三角向右標記

'1' 向下標記

'2' 向上標記

'3' 向左標記

'4' 向右標記

's' 方形標記

'p' 五角大樓標記

'*' 星標記

'h' 六邊形標記1

'H' 六邊形標記2

'+' 加號標記

'x' x 標記

'D' 鑽石標記

'd' 薄鑽石標記

'|' 豎線標記

'_' 橫線標記

color顏色屬性

matplotlib中的顏色值是存儲在matplotlib.colors.cnames中,而cnames屬性是一個字典類型,其中定義了matplotlib中所能使用的所有顏色樣式。

>>>len(matplotlib.colors.cnames.keys())

148

>>>for name , hex in matplotlib.colors.cnames.items(): print(name, ':' , hex)

aliceblue : #F0F8FF

antiquewhite : #FAEBD7

aqua : #00FFFF

aquamarine : #7FFFD4

azure : #F0FFFF

beige : #F5F5DC

bisque : #FFE4C4

black : #000000

blanchedalmond : #FFEBCD

blue : #0000FF

blueviolet : #8A2BE2

brown : #A52A2A

burlywood : #DEB887

cadetblue : #5F9EA0

chartreuse : #7FFF00

chocolate : #D2691E

coral : #FF7F50

cornflowerblue : #6495ED

cornsilk : #FFF8DC

crimson : #DC143C

cyan : #00FFFF

darkblue : #00008B

darkcyan : #008B8B

darkgoldenrod : #B8860B

darkgray : #A9A9A9

darkgreen : #006400

darkgrey : #A9A9A9

darkkhaki : #BDB76B

darkmagenta : #8B008B

darkolivegreen : #556B2F

darkorange : #FF8C00

darkorchid : #9932CC

darkred : #8B0000

darksalmon : #E9967A

darkseagreen : #8FBC8F

darkslateblue : #483D8B

darkslategray : #2F4F4F

darkslategrey : #2F4F4F

darkturquoise : #00CED1

darkviolet : #9400D3

deeppink : #FF1493

deepskyblue : #00BFFF

dimgray : #696969

dimgrey : #696969

dodgerblue : #1E90FF

firebrick : #B22222

floralwhite : #FFFAF0

forestgreen : #228B22

fuchsia : #FF00FF

gainsboro : #DCDCDC

ghostwhite : #F8F8FF

gold : #FFD700

goldenrod : #DAA520

gray : #808080

green : #008000

greenyellow : #ADFF2F

grey : #808080

honeydew : #F0FFF0

hotpink : #FF69B4

indianred : #CD5C5C

indigo : #4B0082

ivory : #FFFFF0

khaki : #F0E68C

lavender : #E6E6FA

lavenderblush : #FFF0F5

lawngreen : #7CFC00

lemonchiffon : #FFFACD

lightblue : #ADD8E6

lightcoral : #F08080

lightcyan : #E0FFFF

lightgoldenrodyellow : #FAFAD2

lightgray : #D3D3D3

lightgreen : #90EE90

lightgrey : #D3D3D3

lightpink : #FFB6C1

lightsalmon : #FFA07A

lightseagreen : #20B2AA

lightskyblue : #87CEFA

lightslategray : #778899

lightslategrey : #778899

lightsteelblue : #B0C4DE

lightyellow : #FFFFE0

lime : #00FF00

limegreen : #32CD32

linen : #FAF0E6

magenta : #FF00FF

maroon : #800000

mediumaquamarine : #66CDAA

mediumblue : #0000CD

mediumorchid : #BA55D3

mediumpurple : #9370DB

mediumseagreen : #3CB371

mediumslateblue : #7B68EE

mediumspringgreen : #00FA9A

mediumturquoise : #48D1CC

mediumvioletred : #C71585

midnightblue : #191970

mintcream : #F5FFFA

mistyrose : #FFE4E1

moccasin : #FFE4B5

navajowhite : #FFDEAD

navy : #000080

oldlace : #FDF5E6

olive : #808000

olivedrab : #6B8E23

orange : #FFA500

orangered : #FF4500

orchid : #DA70D6

palegoldenrod : #EEE8AA

palegreen : #98FB98

paleturquoise : #AFEEEE

palevioletred : #DB7093

papayawhip : #FFEFD5

peachpuff : #FFDAB9

peru : #CD853F

pink : #FFC0CB

plum : #DDA0DD

powderblue : #B0E0E6

purple : #800080

rebeccapurple : #663399

red : #FF0000

rosybrown : #BC8F8F

royalblue : #4169E1

saddlebrown : #8B4513

salmon : #FA8072

sandybrown : #F4A460

seagreen : #2E8B57

seashell : #FFF5EE

sienna : #A0522D

silver : #C0C0C0

skyblue : #87CEEB

slateblue : #6A5ACD

slategray : #708090

slategrey : #708090

snow : #FFFAFA

springgreen : #00FF7F

steelblue : #4682B4

tan : #D2B48C

teal : #008080

thistle : #D8BFD8

tomato : #FF6347

turquoise : #40E0D0

violet : #EE82EE

wheat : #F5DEB3

white : #FFFFFF

whitesmoke : #F5F5F5

yellow : #FFFF00

yellowgreen : #9ACD32

這些顏色值對應的圖片如下,收藏已備後用哦。

顏色名稱對應關係圖示

matplotlib中的關於點、線的樣式及顏色屬性就介紹到這裡了。需要知道的是,這些屬性值是可以通用的。比如在劃線時可以使用這些屬性,在畫柱形圖、雷達圖、餅圖時,這些屬性也都是通用的。

這些方式是通用的

現在理解上面的'-b'和'r-'的作用了吧?表示繪製顏色為綠色或者紅色的實線。

好了,今天的內容就到這裡了,我們梳理了matplotlib中關於點、線的顏色及樣式屬性,這是很重要的,因為很多圖我們在實際繪製過程中都是通過點線的組合來實現的。這些顏色及線條樣式建議大家收藏,以備後用。

喜歡的朋友們加個關注,後續推出更有意思的內容,還想學習哪些有關Python編程的重要知識點和內容呢?歡迎下方留言,我會陸續跟大家分享相關內容。

轉載請註明出處,百家號:Python高手養成

相關焦點

  • 高效使用 Python 可視化工具 Matplotlib
    基本前提如果你除了本文之外沒有任何基礎,建議用以下幾個步驟學習如何使用matplotlib:學習基本的matplotlib術語,尤其是什麼是圖和坐標軸始終使用面向對象的接口,從一開始就養成使用它的習慣用基礎的pandas繪圖開始你的可視化學習用seaborn進行更複雜的統計可視化用matplotlib來定製
  • 手把手教你用Matplotlib進行數據可視化
    http://matplotlib.org就像我們用縮寫np來表示NumPy一樣,我們也會用一些標準的縮寫來表示Matplotlib導入:import matplotlib as mpl   import matplotlib.pyplot as plt plt是我們最常用的一個接口。
  • Python數據可視化,無法繞過的matplotlib基礎知識!!!
    matplotlib是python優秀的數據可視化庫,python數據分析必備利器,本文專門為你整理了matplotlib詳細使用方法,來學習吧!--- 以下是正文 ---數據可視化非常重要,因為錯誤或不充分的數據表示方法可能會毀掉原本很出色的數據分析工作。
  • 【Python教程】用Python進行數據可視化
    在本文中,我將介紹如何開始使用Python和matplotlib、seaborn兩個庫對數據進行可視化。下面我們就用上面這個簡單的數據集作為例子,展示用 Python 做出9種可視化效果,並附有相關代碼。
  • Matplotlib數據可視化!
    數據可視化,就是指將結構或非結構數據轉換成適當的可視化圖表,然後將隱藏在數據中的信息直接展現於人們面前。相比傳統的用表格或文檔展現數據的方式,可視化能將數據以更加直觀的方式展現出來,使數據更加客觀、更具說服力。數據可視化已經被用於工作科研的方方面面,如工作報表、科研論文等,成為了不可或缺的基礎技能。現在,就讓我們一起來學習下數據可視化的基礎知識。
  • python可視化之matplotlib庫餅形圖的基本用法與應用實例
    實驗環境:已正確安裝python3.5、matplotlib1、餅形圖概念餅狀圖顯示一個整體中各項大小佔總體的百分比,可以清楚反應部分與總體的關係。在餅形圖上標出百分比為了在平面上觀察各項的比例,可以設置x與y的比例為1進行觀察。利用axes方法創建或激活軸,aspect為一個數字時,表示屏幕空間中y與x之比。
  • matplotlib的Python數據可視化和探索——入門指南
    matplotlib——最受歡迎的Python庫,用於數據可視化和探索我喜歡在Python中使用matplotlib。這是我學會掌握的第一個可視化庫,此後一直存在。matplotlib是最受歡迎的用於數據可視化和探索的Python庫,這是有原因的——它提供的靈活性和敏捷性是無與倫比的!
  • Python Matplotlib入門學習(一)
    ,各行各業都會遇到與數據相關的行業,所以數據可視化過程是理解數據必不可少的部分,今天就帶大家通過matplotlib的官方文檔帶領大家學習如何進行基本繪圖。圖:matplotlib官網主頁Matplotlib:使用Python可視化「Matplotlib是一個綜合庫,用於在Python中創建靜態,動畫和交互式可視化。Matplotlib使簡單的事情變得容易而困難的事情變得可能。」這是他們的廣告語,不多說了我們進入正題。
  • Python數據可視化技能提升—用好matplotlib第1篇
    好啦,既然有朋友提出需要來啦,那今天咱們就聊點Python數據可視化相關的東東吧,說到Python的數據可視化呢,就必須提Python的一個庫哦,它就是大名鼎鼎的matplotlib庫,也是目前用得最多的Python數據可視化庫哦,matplotlib其實把MatLab的很多優點都借鑑了過來,所以呢,熟悉MatLab的朋友
  • python數據科學系列:matplotlib入門詳細教程
    與之齊名,matplotlib作為數據科學的的另一必備庫,算得上是python可視化領域的元老,更是很多高級可視化庫的底層基礎,其重要性不言而喻。本篇對matplotlib進行系統性介紹,不會面面俱到,但求體系完備、詳略得當。
  • Python可視化:學會Matplotlib這幾點就夠了!
    python分析可視化展示,對於日常的分析中主要用到餅圖、折線圖、直方圖基本能滿足一般的分析可視化呈現。1、可視化直方圖舉例import matplotlib.pyplot as pltplt.rcParams['font.family']='Arial Unicode MS' #中文顯示plt.plot([3,1,4,5,2]) #基礎數據實現折線圖plt.ylabel('縱軸(值)')
  • Matplotlib數據可視化方法總結
    數據可視化,就是指將結構或非結構數據轉換成適當的可視化圖表,然後將隱藏在數據中的信息直接展現於人們面前。相比傳統的用表格或文檔展現數據的方式,可視化能將數據以更加直觀的方式展現出來,使數據更加客觀、更具說服力。數據可視化已經被用於工作科研的方方面面,如工作報表、科研論文等,成為了不可或缺的基礎技能。現在,就讓我們一起來學習下數據可視化的基礎知識。
  • python:matplotlib入門詳細教程
    與之齊名,matplotlib作為數據科學的的另一必備庫,算得上是python可視化領域的元老,更是很多高級可視化庫的底層基礎,其重要性不言而喻。本篇對matplotlib進行系統性介紹,不會面面俱到,但求體系完備、詳略得當。
  • 如何系統地學習Python 中 matplotlib, numpy, scipy, pandas?
    總的來說,如果你想理解和處理手頭的數據,就用 Pandas;如果你想執行一些複雜的計算,就用 Numpy 和 SciPy;如果你想將數據可視化,就用 Matplotlib。這 4 個庫在 Python 生態體系中的地位也不一樣,相對來說 Numpy 最簡單,處於最底層。
  • python使用matplotlib畫動態圖
    matplotlib是python的核心繪圖庫,是python的一個開源項目,旨在為python提供一個繪圖庫。matplotlib與numpy組合是一種可行的matlab替代方案。在可視化中matplotlib是最常使用的工具,是對數據整體判斷、效果預測不可或缺的重要模塊。
  • 數據可視化|matplotlib 的主要組成元素
    >matplotlib 是 Python 中的一個繪圖庫,具有可定製性強、圖表資源豐富等特點,既能創建靜態圖形,也能創建動態交互的數據可視化效果;既能創建 2D 圖形,也能創建 3D 圖形;既能創建常見的簡單圖形,也能創建統計學專業的複雜圖形。ma
  • Matplotlib 數據可視化基本操作
    最近著手to C業務,藉助Python進行數據分析,涉及到數據可視化的一些內容,跟著網上的教程敲了敲代碼本文內容:csv文件數據讀取與信息查閱;柱形圖、折線圖、餅圖、箱型圖、散點圖、直方圖繪製data讀取與顯示 #  import packagesimport pandas as pd import
  • Python-Matplotlib: 官方學習手冊獲取與學習
    程式語言及其數值數學擴展包 NumPy的可視化操作界面。此外,matplotlib還有一個基於圖像處理庫(如開放圖形庫OpenGL)的pylab接口,其設計與MATLAB非常類似--儘管並不怎麼好用。SciPy就是用matplotlib進行圖形繪製。matplotlib最初由John D. Hunter撰寫,它擁有一個活躍的開發社區,並且根據BSD樣式許可證分發。在John D.
  • Python使用matplotlib實現數據可視化教程
    目前有很多工具都可以數實現據可視化,今天我們的主角是Python中的matplotlib庫,相對來說,matplotlib功能不是最強大的,但是對於基本的圖形來說
  • Python的數據可視化:對比7種工具包
    幸運的是,近幾年出現很多新的數據可視化Python庫彌補了這個差距,matplotlib已經成為主要的數據可視化庫,但是還有很多其它的庫,比如vispy,bokeh,seaborn,pygal,folium,和networkx,他們都建立在matplotlib的基礎之上,或者擁有matplotlib所不具有的功能。