1. 程式人生 > >Matplotlib資料視覺化(4):折線圖與散點圖

Matplotlib資料視覺化(4):折線圖與散點圖

In [1]:
from matplotlib import pyplot as plt
import numpy as np
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']  # 中文字型支援
 

對於折線圖的繪製,在之前部落格的示例中都有使用,在面向物件繪圖方法中,一般是建立axes例項後呼叫plot()方法實現折線圖繪製,並通過傳遞各種引數實現對影象的設定。 散點圖的繪製通過axes例項的scatter()方法來實現。scatter()方法的引數和引數取值與繪製折線圖的plot()方法基本一致,所以本文將兩種圖放在一起進行介紹。

 

1 多影象繪製¶

 

在一個axes中,可以繪製多條折線圖,秩序多次呼叫plot()或者scatter()方法即可。

In [2]:
x1 = np.linspace(0.0, 5.0, 10)
y1 = np.cos(2 * np.pi * x1) * np.exp(-x1)
fig, axes = plt.subplots(1, 2, figsize=(10, 3), tight_layout=True)

# 折線圖
axes[0].set_title('圖1 折 線 圖')
axes[0].plot(x1, y1)
axes[0].plot(x1, y1+0.5)

# 散點圖
axes[1].set_title('圖2 散 點 圖')
axes[1].scatter(x1, y1)
axes[1].scatter(x1, y1+0.5)
plt.show()
   

2 顏色¶

 

顏色通過color引數來設定,color引數的值可以使顏色的英文全稱,例如'green'、'red',也可以是簡寫,例如'g'表示'green'、'r表示'red',一些常見顏色全稱和簡寫如下所示。

  • 'b' , blue
  • 'g' , green
  • 'r' , red
  • 'c' , cyan
  • 'm' , magenta
  • 'y' , yellow
  • 'k' , black
  • 'w' , white

如果覺得這些常見的顏色不夠用,設定可以用16進位制字元來表示顏色。

In [3]:
x1 = np.linspace(0.0, 5.0, 10)
y1 = np.cos(2 * np.pi * x1) * np.exp(-x1)
fig, axes = plt.subplots(1, 2, figsize=(10, 3), tight_layout=True)

# 折線圖
axes[0].set_title('圖1 折 線 圖')
axes[0].plot(x1, y1, color='red')  # 紅色
axes[0].plot(x1, y1+0.5, color='g')  # 綠色
axes[0].plot(x1, y1+1, color='#008000')  # 也是綠色

# 散點圖
axes[1].set_title('圖2 散 點 圖')
axes[1].scatter(x1, y1, color='red')  # 紅色
axes[1].scatter(x1, y1+0.5, color='g')  # 綠色
axes[1].scatter(x1, y1+1, color='#008000')  # 也是綠色
plt.show()
   

3 圖例¶

 

axes例項中提供了legend()方法用於新增圖例,legend()方法會將元素的label字串設定為圖例,如下面的示例所示,有兩種引數傳遞方式來設定label。除了label外,還可以傳遞loc引數來設定圖例的位置,loc引數值可以使代表位置的字串,也可以是對應的整數,其對應關係如下所示:

    ===============   =============
    Location String   Location Code
    ===============   =============
    'best'            0
    'upper right'     1
    'upper left'      2
    'lower left'      3
    'lower right'     4
    'right'           5
    'center left'     6
    'center right'    7
    'lower center'    8
    'upper center'    9
    'center'          10
    ===============   =============
In [4]:
x1 = np.linspace(0.0, 5.0, 10)
y1 = np.cos(2 * np.pi * x1) * np.exp(-x1)
fig, axes = plt.subplots(3, 2, figsize=(10, 8), tight_layout=True)

axes[0, 0].plot(x1, y1, label='線1')  # 傳遞label引數
axes[0, 0].plot(x1, y1+0.5, label='線2')  # 傳遞label引數
axes[0, 0].legend(loc='best')  # 預設就是best

axes[1, 0].plot(x1, y1, label='線1')  # 傳遞label引數
axes[1, 0].plot(x1, y1+0.5, label='線2')  # 傳遞label引數
axes[1, 0].legend(loc='lower right')

line1, = axes[2, 0].plot(x1, y1)  # 注意,等號前面有逗號
line2, = axes[2, 0].plot(x1, y1+0.5)
axes[2, 0].legend(handles=(line1, line2), labels=('線1', '線2'), loc='upper center')


axes[0, 1].scatter(x1, y1, label='第一組')  # 傳遞label引數
axes[0, 1].scatter(x1, y1+0.5, label='第二組')  # 傳遞label引數
axes[0, 1].legend(loc='best')  # 預設就是best

axes[1, 1].scatter(x1, y1, label='第一組')  # 傳遞label引數
axes[1, 1].scatter(x1, y1+0.5, label='第二組')  # 傳遞label引數
axes[1, 1].legend(loc='lower right')


group1 = axes[2, 1].scatter(x1, y1)   # 注意,等號前面沒有逗號,這是與plot()方法不同的
group2 = axes[2, 1].scatter(x1, y1+0.5) 

axes[2, 1].legend(handles=(group1, group2), labels=('第一組', '第二組'), loc='upper center')

plt.show()
 

相關推薦

Matplotlib資料視覺4折線

In [1]: from matplotlib import pyplot as plt import numpy as np import matplotlib as mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] # 中

Matplotlib資料視覺7圖片展示儲存

In [1]: import os import matplotlib.image as mpimg from PIL import Image import matplotlib.pyplot as plt import numpy as np import matplot

Matplotlib資料視覺1入門介紹

  1 matplot入門指南¶ matplotlib是Python科學計算中使用最多的一個視覺化庫,功能豐富,提供了非常多的視覺化方案,基本能夠滿足各種場景下的資料視覺化需求。但功能豐富從另一方面來說也意味著概念、方法、引數繁多,讓許多新手望而卻步。 據我瞭解,大部分人在對m

Matplotlib資料視覺2三大容器物件常用設定

  上一篇部落格中說到,matplotlib中所有畫圖元素(artist)分為兩類:基本型和容器型。容器型元素包括三種:figure、axes、axis。一次畫圖的必經流程就是先建立好figure例項,接著由figure去建立一個或者多個axes,然後通過axes例項呼叫各種方法

Matplotlib資料視覺3文字

  在一幅圖表中,文字、座標軸和影象的是資訊傳遞的核心,對著三者的設定是作圖這最為關心的內容,在上一篇部落格中雖然列舉了一些設定方法,但沒有進行深入介紹,本文以圍繞如何對文字和座標軸進行設定展開(對影象的設定在後續介紹到各種圖繪製時介紹)。 這裡所說的文字是指在使用matplot

Matplotlib資料視覺5柱狀直方圖

  柱狀圖和直方圖是兩種非常類似的統計圖,區別在於: 直方圖展示資料的分佈,柱狀圖比較資料的大小。 直方圖X軸為定量資料,柱狀圖X軸為分類資料。因此,直方圖上的每個條形都是不可移動的,X軸上的區間是連續的、固定的。而柱狀圖上的每個條形是可以隨意排序的,有的情況下需要按照分

Matplotlib資料視覺6箱線

In [1]: from matplotlib import pyplot as plt import numpy as np import matplotlib as mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] # 中文字型支

勒布朗生涯資料視覺Matplotlib製作柱形及Figure, Text類和bar函式的引數探索

簡介 本篇文章使用Kaggle.com上的資料集NBA Players stats since 1950中的Seasons_Stats.csv,其包含從1950至今的每個賽季的球員資料,每條資料有53項欄目,是綜合性較強的NBA資料集,我嘗試從中提取勒布朗詹姆

Caffe視覺權重及輸出視覺用Deep Visualization Toolbox實現

Caffe視覺化(二):權重及輸出視覺化(用Deep Visualization Toolbox實現) 本文記錄了博主在研究Caffe權重及輸出視覺化過程中發現的工具包,包括工具包的安裝、使用和調整(以適應自定義網路)的相關內容。更新於2018.10.26。 文章目錄

Caffe視覺網路結構視覺用Caffe自帶程式實現

Caffe視覺化(一):網路結構視覺化(用Caffe自帶程式實現) 本文記錄瞭如何利用Caffe自帶的程式實現網路的視覺化,包括可能遇到的問題和解決方案。更新於2018.10.25。 文章目錄 Caffe視覺化(一):網路結構視覺化(用Caffe自帶程式實現

Cesium中級1 - 空間資料視覺

#[CesiumJS]Cesium中級1 - 空間資料視覺化(一) Cesium中文網:http://cesiumcn.org/ | 國內快速訪問:http://cesium.coinidea.com/ 本教程將教讀者如何使用Cesium的實體(Entity)API繪製空間資料,如點、標

python --資料視覺

一、NumPy 1、簡介:  官網連結:http://www.numpy.org/  NumPy是Python語言的一個擴充程式庫。支援高階大量的維度陣列與矩陣運算,此外也針對陣列運算提供大量的數學函式庫 2、基本功能: 快速高效的多維陣列物件ndarray 用於對陣列執行元素級計算以及直

關於資料序列4自定義序列的實現,支援常用集合框架

下面的示例很好的揭示瞭如何實現自定義序列化的方法。 支援byte, byte[], boolean, boolean[], int, int[], long, long[] ,double ,double[], String, String[], 以及Enum, List,Map兩種包

java 資料視覺通過jdbc訪問資料庫,在servlet上獲取資料庫資料

想要通過servlet獲取資料庫資料,首先需要建立jdbc 因為資料是通過無線感測傳到資料庫的,因此jdbc裡只有查詢操作,增刪改的同學可以自行新增。 程式碼中被註釋掉的部分用於測試。 main函式部分用於檢測是否連線上資料庫,並檢測是否能讀到資料,若是讀得到

PYTHON資料視覺seaborn

線性關係視覺化 許多資料集都有著眾多連續變數。資料分析的目的經常就是衡量變數之間的關係,我們之前介紹了可以繪製雙變數分佈的函式。然而,使用統計模型來估計兩個噪聲觀測組之間的簡單關係可能是非常有幫助的。我們在這一章中討論的函式功能將線上性迴歸的框架實現。 請注

kaggle中的視覺House Prices

kaggle中預測的get started專案,原文連結。 看原文可以入門特徵工程,這裡主要說視覺化部分,用到matplotlib和seaborn。 導庫增加 import seaborn as sns from scipy.stats import

python基礎4條件語句循環語句

語句 單分支 繼續 目的 輸入 代碼 原則 src 分享 今天我們看看條件語句與循環語句。 預習: 1、使用while循環輸出1 2 3 4 5 6 8 9 10 2、求1-100的所有數的和 3、輸出 1-100 內的所有奇數 4、輸出 1-100 內的所有偶數 5、求1

解讀ASP.NET 5 & MVC6系列4核心技術環境配置

asp.net 5是下一代的asp.net,該版本進行了全部重寫以適用於跨平臺,新新版本中,微軟引入瞭如下工具與命令:DNVM、DNX、DNU。 DNVM(.NET Version Manager):由於要實現跨平臺的目錄,微軟提供了DNVM功能,DNVM是ASP.NET最底層的內容,他是一組Powershe

java程式設計師的大資料之路5HDFS壓縮解壓縮

背景 好久沒有更新了,原因是公司專案上線,差點被祭天。在這種驚心動魄的時候還是要抽時間做一點自己喜歡做的事情的,然而進度比預期慢了許多。 正式開始 接下來就開始記錄最近的學習成果啦! 在Hadoop叢集中,網路資源是非常珍貴的。因此對檔案進行壓縮是非

Pandas條形

import matplotlib.pyplot as plt from numpy import arange import pandas as pd   reviews = pd.read_csv(r"E:\PyCharm\fandango_score_comparison.c