Python-matplotlib: 圖表手繪風

2022-01-09 EasyShu
matplotlib.pyplot.xkcd()簡介

這個Matplotlib子函數特別簡單,只有三個參數,別看參數少,但功能可不小

matplotlib.pyplot.xkcd(scale=1, #相對於不使用xkcd的風格圖,褶皺的幅度
                       length=100, #褶皺長度
                       randomness=2#褶皺的隨機性
                      )

matplotlib.pyplot.xkcd()使用

如下,加with行代碼即可,括號中參數按個人喜好決定是否設置~

with plt.xkcd(scale=1, length=100, randomness=2):
#with是臨時使用一下,不影響其它圖使用正常樣式
    繪圖代碼
    。。。。。。
    plt.show()

matplotlib.pyplot.xkcd()使用實例

以下參考:Python可視化25|seaborn繪製矩陣圖

#支持seaborn
import seaborn as sns
iris_sns = sns.load_dataset("iris")
with plt.xkcd():
    g = sns.pairplot(
        iris_sns,
        hue='species',  #按照三種花分類
        palette=['#dc2624', '#2b4750', '#45a0a2'])
    sns.set(style='whitegrid')
    g.fig.set_size_inches(12, 12)
    sns.set(style='whitegrid', font_scale=1.5)

以下參考:Python可視化29|matplotlib-餅圖(pie)

import matplotlib.pyplot as plt
with plt.xkcd(
        scale=4,  #相對於不使用xkcd的風格圖,褶皺的幅度
        length=120,  #褶皺長度
        randomness=2):  #褶皺的隨機性
    plt.figure(dpi=150)
    patches, texts, autotexts = plt.pie(
        x=[1, 2, 3],  #返回三個對象
        labels=['A', 'B', 'C'],
        colors=['#dc2624', '#2b4750', '#45a0a2'],
        autopct='%.2f%%',
        explode=(0.1, 0, 0))
    texts[1].set_size('20')  #修改B的大小

    #matplotlib.patches.Wedge
    patches[0].set_alpha(0.3)  #A組分設置透明度
    patches[2].set_hatch('|')  #C組分添加網格線
    patches[1].set_hatch('x')

    plt.legend(
        patches,
        ['A', 'B', 'C'],  #添加圖例
        title="Pie Learning",
        loc="center left",
        fontsize=15,
        bbox_to_anchor=(1, 0, 0.5, 1))

    plt.title('Lovely pie', size=20)
    plt.show()

with plt.xkcd():
    from string import ascii_letters
    plt.figure(dpi=150)
    patches, texts, autotexts = plt.pie(
        x=range(1, 12),
        labels=list(ascii_letters[26:])[0:11],
        colors=[
            '#dc2624', '#2b4750', '#45a0a2', '#e87a59', '#7dcaa9', '#649E7D',
            '#dc8018', '#C89F91', '#6c6d6c', '#4f6268', '#c7cccf'
        ],
        autopct='%.2f%%',
    )
    plt.legend(
        patches,
        list(ascii_letters[26:])[0:11],  #添加圖例
        title="Pie Learning",
        loc="center left",
        bbox_to_anchor=(1, 0, 0.5, 1),
        ncol=2,  #控制圖例中按照兩列顯示,默認為一列顯示,
    )

以下參考:Python可視化|matplotlib12-垂直|水平|堆積條形圖詳解

import matplotlib.pyplot as plt
import numpy as np
with plt.xkcd():
    plt.figure(dpi=150)
    labels = ['Jack', 'Rose', 'Jimmy']
    year_2019 = np.arange(1, 4)
    year_2020 = np.arange(1, 4) + 1
    bar_width = 0.4

    plt.bar(
        np.arange(len(labels)) - bar_width / 2,  #為了兩個柱子一樣寬
        year_2019,
        color='#dc2624',
        width=bar_width,
        label='year_2019'  #圖例
    )
    plt.bar(
        np.arange(len(labels)) + bar_width / 2,
        year_2020,
        color='#45a0a2',
        width=bar_width,
        label='year_2020'  #圖例
    )
    plt.xticks(np.arange(0, 3, step=1), labels, rotation=45)  #定義柱子名稱
    plt.legend(loc=2)  #圖例在左邊

以下參考: Python可視化|matplotlib10-繪製散點圖scatter

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
#數據準備
from sklearn import datasets

iris = datasets.load_iris()
x, y = iris.data, iris.target
pd_iris = pd.DataFrame(np.hstack((x, y.reshape(150, 1))),
                       columns=[
                           'sepal length(cm)', 'sepal width(cm)',
                           'petal length(cm)', 'petal width(cm)', 'class'
                       ])
with plt.xkcd():

    plt.figure(dpi=150)  #設置圖的解析度
    #plt.style.use('Solarize_Light2')  #使用Solarize_Light2風格繪圖
    iris_type = pd_iris['class'].unique()  #根據class列將點分為三類
    iris_name = iris.target_names  #獲取每一類的名稱
    colors = ['#dc2624', '#2b4750', '#45a0a2']  #三種不同顏色
    markers = ['$\clubsuit, '.', '+']  #三種不同圖形

    for i in range(len(iris_type)):
        plt.scatter(
            pd_iris.loc[pd_iris['class'] == iris_type[i],
                        'sepal length(cm)'],  #傳入數據x
            pd_iris.loc[pd_iris['class'] == iris_type[i],
                        'sepal width(cm)'],  #傳入數據y
            s=50,  #散點圖形(marker)的大小
            c=colors[i],  #marker顏色
            marker=markers[i],  #marker形狀
            #marker=matplotlib.markers.MarkerStyle(marker = markers[i],fillstyle='full'),#設置marker的填充
            alpha=0.8,  #marker透明度,範圍為0-1
            facecolors='r',  #marker的填充顏色,當上面c參數設置了顏色,優先c
            edgecolors='none',  #marker的邊緣線色
            linewidths=1,  #marker邊緣線寬度,edgecolors不設置時,該參數不起作用
            label=iris_name[i])  #後面圖例的名稱取自label

    plt.legend(loc='upper right')

Ref: https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.xkcd.html#matplotlib.pyplot.xkcd

如需聯繫EasyShu團隊

請加微信:EasyCharts

微信公眾號【EasyShu】博文代碼集合地址

https://github.com/Easy-Shu/EasyShu-WeChat

《Python數據可視化之美》-配套原始碼下載地址

https://github.com/Easy-Shu/Beautiful-Visualization-with-python

《R語言數據可視化之美》-增強版配套原始碼下載地址

https://github.com/Easy-Shu/Beautiful-Visualization-with-R


相關焦點

  • python:matplotlib入門詳細教程
    與之齊名,matplotlib作為數據科學的的另一必備庫,算得上是python可視化領域的元老,更是很多高級可視化庫的底層基礎,其重要性不言而喻。本篇對matplotlib進行系統性介紹,不會面面俱到,但求體系完備、詳略得當。
  • 用 Matplotlib 庫生成動畫圖表
    翻譯:瘋狂的技術宅原文:https://towardsdatascience.com/animations-with-matplotlib-d96375c5442c用Matplotlib進行雨滴模擬動畫是一種展示現象的有趣方式。相對於靜態圖表,人類總是容易被動畫和交互式圖表所吸引。
  • 如何用matplotlib繪圖呢?
    什麼是matplotlib?使用過python做數據分析的小夥伴都知道,matplotlib是一款命令式、較底層、可定製性強、圖表資源豐富、簡單易用、出版質量級別的python 2D繪圖庫。matplotlib算是python繪圖的元老級庫,類似程式語言裡的C語言。很多其它的python繪圖庫是基於matplotlib開發的,比如seaborn、ggplot、plotnine、holoviews、basemap等。matplotlib可用於python腳本、python shell、jupyter notebook、web等。
  • python數據科學系列:matplotlib入門詳細教程
    與之齊名,matplotlib作為數據科學的的另一必備庫,算得上是python可視化領域的元老,更是很多高級可視化庫的底層基礎,其重要性不言而喻。本篇對matplotlib進行系統性介紹,不會面面俱到,但求體系完備、詳略得當。
  • Python OpenCV教程:使用 Matplotlib 顯示圖像
    來自:Linux迷  https://www.linuxmi.com/python-opencv-matplotlib.html在這篇Python
  • 利用Python進行數據分析之matplotlib常用圖表
    matplotlib可用來繪製多種類型的分析圖表,詳細繪圖函數可參考官方文檔,以下介紹幾種常用圖表及其作用
  • Matplotlib入門詳細教程
    行文目錄結構,重點是右三分支matplotlib是python的一個繪圖庫,與numpy、pandas共享數據科學三劍客的美譽,也是很多高級可視化庫的基礎。matplomatplotlib不是python內置庫,調用前需手動安裝,且需依賴numpy庫。截至當前,matplotlib發行版本號為3.2.1,適配python3.6及以上版本。
  • Python-54 Matplotlib庫與pyplot
    import matplotlibmatplotlib.rcParams['font.family']='SimHei'2、增加屬性fontpropertiesimport matplotlib.pyplot as pltplt.plot([3,1,4,5,2])plt.ylabel('Grade')plt.savefig(r'C:\Users\Rhonin\Desktop\python練習\數據分析練習\\plot小試\test.jpg',dpi=200)plt.show()
  • python使用matplotlib畫動態圖
    matplotlib是python的核心繪圖庫,是python的一個開源項目,旨在為python提供一個繪圖庫。matplotlib與numpy組合是一種可行的matlab替代方案。在可視化中matplotlib是最常使用的工具,是對數據整體判斷、效果預測不可或缺的重要模塊。
  • python matplotlib模塊
    導入模塊導入matplotlib的子模塊import matplotlib.pyplot as pltimport numpy as np2.#coding=utf-8import numpy as npimport matplotlib.pyplot as pltplt.figure(1) # 創建圖表1plt.figure(2) # 創建圖表2ax1 = plt.subplot(211) # 在圖表2中創建子圖1ax2 = plt.subplot
  • Python數據可視化,無法繞過的matplotlib基礎知識!!!
    matplotlib是python優秀的數據可視化庫,python數據分析必備利器,本文專門為你整理了matplotlib詳細使用方法,來學習吧!--- 以下是正文 ---數據可視化非常重要,因為錯誤或不充分的數據表示方法可能會毀掉原本很出色的數據分析工作。
  • Matplotlib 可視化最有價值的 14 個圖表(附完整 Python 原始碼)
    以及 Seaborn 用的最多的 50 個圖形,掌握這些圖形的繪製,對於數據分析的可視化有莫大的作用,在數據分析和可視化中最有用的 50 個 Matplotlib 圖表。這些圖表列表允許您使用 python 的 matplotlib 和 seaborn 庫選擇要顯示的可視化對象。介紹這些圖表根據可視化目標的7個不同情景進行分組。 例如,如果要想像兩個變量之間的關係,請查看「關聯」部分下的圖表。 或者,如果您想要顯示值如何隨時間變化,請查看「變化」部分,依此類推。有效圖表的重要特徵:在不歪曲事實的情況下傳達正確和必要的信息。
  • 高效使用 Python 可視化工具 Matplotlib
    是Python中最常用的可視化工具之一,可以非常方便地創建海量類型的2D圖表和一些基本的3D圖表。基本前提如果你除了本文之外沒有任何基礎,建議用以下幾個步驟學習如何使用matplotlib:學習基本的matplotlib術語,尤其是什麼是圖和坐標軸始終使用面向對象的接口,從一開始就養成使用它的習慣用基礎的pandas繪圖開始你的可視化學習用seaborn進行更複雜的統計可視化用matplotlib來定製
  • Python-matplotlib 學術柱狀圖繪製
    matplotlib繪製這種柱狀圖或者條形圖還是比較簡單的,主要涉及的知識點就是ax.bar()方法的應用,首先進行黑灰顏色柱狀圖的繪製,具體代碼如下:plt.rcParams['font.family'] = ['Times New Roman']fig,ax = plt.subplots(1,1,figsize=(7,4.5),dpi=200
  • Python-matplotlib 學術型散點圖繪製
    本期推文只要介紹學術散點圖的繪製教程,涉及的內容主要還是matplotlib散點圖的繪製,只不過添加了相關性分析,擬合關係式和顏色映射散點密度(大多數的英文文章中多出現此類圖表
  • Matplotlib繪圖|快速定義圖表樣式的小技巧
    (X,S,color = "blue",linewidth = 3.0,linestyle = ":")為了方便起見,matplotlib 提供一個 matplotlibrc 文件接口,來全局自定義圖表屬性(圖表大小、DPI、線的寬度、坐標軸、樣式、網格屬性等),使用方法為 rcParams 命令,一次定義,對接下來創建的全部圖表的樣式都起效,避免了來回調參的麻煩rcParsms
  • Python數據分析利器:matplotlib超詳細基礎介紹!!!
    matplotlib是python優秀的數據可視化庫,python數據分析必備利器,本文專門為你整理了matplotlib詳細使用方法,來學習吧!--- 以下是正文 ---數據可視化非常重要,因為錯誤或不充分的數據表示方法可能會毀掉原本很出色的數據分析工作。
  • Python可視化:學會Matplotlib這幾點就夠了!
    python分析可視化展示,對於日常的分析中主要用到餅圖、折線圖、直方圖基本能滿足一般的分析可視化呈現。#y軸文字標籤plt.savefig('test',dpi=600) #保存圖片plt.show() #可視化圖形展示Python中的Matplotlib可視化編程整體結構主要有以下幾部分組成:(1)導入Matplotlib庫來進行(2)為了圖表可視化中文顯示必備代碼(3)可視化核心代碼,依據不同的圖形使用不同函數如直方圖:plt.plot
  • Python-matplotlib: 散點圖的繪製
    matplotlib和seaborn,當然用於數據處理分析的pandas和 numpy也必不可少。如下:import seaborn as snsimport matplotlib.lines as mlinesfrom mpl_toolkits.axes_grid1.inset_locator import inset_axesfrom matplotlib.patches import Rectangleplt.rcParams
  • Python數據分析之matplotlib作圖
    繪製簡單的折線圖下面我們來使用前面介紹過的matplotlib庫繪製一個簡單的折線圖,再對其進行定製,以實現信息更豐富的數據可視化,我們將使用平方數序列1、4、9、16和25來繪製這個圖表。只需向matplotlib提供如下數字,matplotlib就能完成其他的工作:我們首先導入了模塊pyplot,並給它指定了別名plt,以免反覆輸入pyplot。在線示例大都能夠這樣做,我們在這裡也採取這種方法。模塊pyplot包含了很多用於生成圖表的函數。