最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一篇文章讓你快速掌握Pandas可視化圖表

 更新時(shí)間:2021年08月11日 10:21:47   作者:可以叫我才哥  
大家都知道Pandas是基于Python平臺(tái)的大數(shù)據(jù)分析與處理的利器,它可以把十分復(fù)雜的可視化過(guò)程,變得簡(jiǎn)單一點(diǎn),這篇文章主要給大家介紹了關(guān)于Pandas可視化圖表的相關(guān)資料,需要的朋友可以參考下

前言

今天簡(jiǎn)單介紹一下Pandas可視化圖表的一些操作,Pandas其實(shí)提供了一個(gè)繪圖方法plot(),可以很方便的將Series和Dataframe類型數(shù)據(jù)直接進(jìn)行數(shù)據(jù)可視化。

1. 概述

這里我們引入需要用到的庫(kù),并做一些基礎(chǔ)設(shè)置。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 設(shè)置 可視化風(fēng)格
plt.style.use('tableau-colorblind10') 

# 以下代碼從全局設(shè)置字體為SimHei(黑體),解決顯示中文問(wèn)題【W(wǎng)indows】
plt.rcParams['font.sans-serif'] = ['SimHei']

# 解決中文字體下坐標(biāo)軸負(fù)數(shù)的負(fù)號(hào)顯示問(wèn)題
plt.rcParams['axes.unicode_minus'] = False 

plot方法默認(rèn)是折線圖,而它還支持以下幾類圖表類型:

‘line' : 折線圖 (default)

‘bar' : 柱狀圖

‘barh' : 條形圖

‘hist' : 直方圖

‘box' : 箱型圖

‘kde' : 密度圖

‘density' : 同密度圖

‘a(chǎn)rea' : 面積圖

‘pie' : 餅圖

‘scatter' : 散點(diǎn)圖 (DataFrame only)

‘hexbin' : 六邊形箱體圖 (DataFrame only)

# 隨機(jī)種子
np.random.seed(1)
ts = pd.Series(np.random.randn(100), index=pd.date_range("1/1/2020", periods=100))
ts = ts.cumsum()
ts.plot()

2. 圖表元素設(shè)置

圖表元素設(shè)置主要是指 數(shù)據(jù)源選擇、圖大小、標(biāo)題、坐標(biāo)軸文字、圖例、網(wǎng)格線、圖顏色、字體大小、線條樣式、色系、多子圖、圖形疊加與繪圖引擎等等。

數(shù)據(jù)源選擇

這里是指坐標(biāo)軸的x、y軸數(shù)據(jù),對(duì)于Series類型數(shù)據(jù)來(lái)說(shuō)其索引就是x軸,y軸則是具體的值;對(duì)于Dataframe類型數(shù)據(jù)來(lái)說(shuō),其索引同樣是x軸的值,y軸默認(rèn)為全部,不過(guò)可以進(jìn)行指定選擇。

# 隨機(jī)種子
np.random.seed(1)
df = pd.DataFrame(np.random.randn(100, 4), index=ts.index, columns=list("ABCD"))
df = df.cumsum()
df.head()

對(duì)于案例數(shù)據(jù),直接繪圖效果如下(顯示全部列)

df.plot()

我們可以指定數(shù)據(jù)源,比如指定列A的數(shù)據(jù)

df.plot(y='A')

我們還可以指定x軸和多列為y,我這里先構(gòu)建一列X,然后進(jìn)行數(shù)據(jù)源選取

df["X"] = list(range(len(df)))
df.head()

選擇X列為x軸,B、C列為y軸數(shù)據(jù)

# 指定多個(gè)Y
df.plot(x='X',y=['B','C'])

圖大小

通過(guò)參數(shù)figsize傳入一個(gè)元組,指定圖的長(zhǎng)寬(英寸)

注意:以下我們以柱狀圖為例做演示

np.random.seed(1)
df = pd.DataFrame(np.random.rand(10, 3), columns=["a", "b", "c"])
df.head()

# 圖像大小
df.plot.bar(figsize=(10,5))

除了在繪圖時(shí)定義圖像大小外,我們還可以通過(guò)matplotlib的全局參數(shù)設(shè)置圖像大小

plt.rcParams['figure.figsize'] = (10,5)

標(biāo)題

通過(guò)參數(shù)title設(shè)置圖表標(biāo)題,需要注意的是如果想要顯示中文,需要提前設(shè)置相關(guān)字體參數(shù),參考此前推文《》

# 標(biāo)題
df.plot.bar(title='標(biāo)題',)

圖例

通過(guò)參數(shù)legend可以設(shè)置圖例,默認(rèn)是顯示圖例的,可以不顯示或者顯示的圖例順序倒序

# 圖例不顯示
df.plot.bar(legend=False)

# 圖例倒序
df.plot.bar(legend='reverse')

坐標(biāo)軸文字

細(xì)心的朋友可能會(huì)發(fā)現(xiàn),在上圖中x軸標(biāo)簽數(shù)字顯示是躺著的,怎么坐起來(lái)呢?

那么可以通過(guò)參數(shù)rot設(shè)置文字的角度

# x軸標(biāo)簽旋轉(zhuǎn)角度
df.plot.bar(rot=0)

網(wǎng)格線

默認(rèn)情況下圖表是不顯示網(wǎng)格線的,我們可以通過(guò)參數(shù)grid來(lái)設(shè)置其顯隱

# 網(wǎng)格線
df.plot.bar(grid=True)

圖顏色

通過(guò)color參數(shù)可以設(shè)定填充顏色,edgecolor可以設(shè)置邊框顏色

# 指定顏色
df.plot.bar(color=['red','orange','yellow'], edgecolor='grey')

字體大小

通過(guò)fontsize可以設(shè)置字體大小

# 字體大小
df.plot.bar(fontsize=20)

線條樣式

對(duì)于折線圖來(lái)說(shuō),還可以設(shè)置線條樣式style

df.plot(style = ['.-','--','*-'] # 圓點(diǎn)、虛線、星星
       )

色系

通過(guò)colormap參數(shù)可以指定色系,色系選擇可以參考matplotlib庫(kù)的色系表

# 指定色系
x = df.plot.bar(colormap='rainbow')

多子圖

通過(guò)subplots參數(shù)決定是否以多子圖形式輸出顯示圖表

# 多子圖
x = df.plot.line(title ='多子圖',
             fontsize =16,
             subplots =True, # 分列
             style = ['.-','--','*-','^-'] # 圓點(diǎn)、虛線、星星
            )

圖像疊加

不同的圖表類型組合在一起

df.a.plot.bar()
df.b.plot(color='r')

繪圖引擎

通過(guò)backend可以指定不同的繪圖引擎,目前默認(rèn)是matplotlib,還支持bokeh、plotly、Altair等等。當(dāng)然,在使用新的引擎前需要先安裝對(duì)應(yīng)的庫(kù)。

# 繪圖引擎
import pandas_bokeh

pandas_bokeh.output_notebook()
df.plot.bar(backend='pandas_bokeh')

# 繪圖引擎 plotly
df.plot.bar(backend='plotly',
            barmode='group',
            height=500, # 圖表高度
            width=800, # 圖表寬度
           )

3. 常見(jiàn)圖表類型

在介紹完圖表元素設(shè)置后,我們演示一下常見(jiàn)的幾種圖表類型。

柱狀圖

柱狀圖主要用于數(shù)據(jù)的對(duì)比,通過(guò)柱形的高低來(lái)表達(dá)數(shù)據(jù)的大小。

# 柱狀圖bar
df.plot.bar()

(這里不做展示,前面案例中有)

此外我們還可以繪制堆疊柱狀圖,通過(guò)設(shè)置參數(shù)stacked來(lái)搞定

# 堆疊柱狀圖
df.plot.bar(stacked=True)

柱狀圖多子圖

# 柱狀圖多子圖
df.plot.bar(subplots=True, rot=0)

條形圖

條形圖和柱狀圖其實(shí)差不多,條形圖就是柱狀圖的橫向展示

# 條形圖barh
df.plot.barh(figsize=(6,8))

堆疊條形圖

# 堆疊條形圖
df.plot.barh(stacked=True)

直方圖

直方圖又稱為質(zhì)量分布圖,主要用于描述數(shù)據(jù)在不同區(qū)間內(nèi)的分布情況,描述的數(shù)據(jù)量一般比較大。

# 直方圖
np.random.seed(1)
df = pd.DataFrame(
    {
        "a": np.random.randn(1000) + 1,
        "b": np.random.randn(1000),
        "c": np.random.randn(1000) - 1,
    },
     columns=["a", "b", "c"],
)
df.head()

df.plot.hist(alpha=0.5) # alpha設(shè)置透明度

單直方圖

# 單直方圖
df.a.plot.hist()

堆疊并指定分箱數(shù)(默認(rèn)為 10)

# 堆疊并指定分箱數(shù)(默認(rèn)為 10)
df.plot.hist(stacked=True, bins=20)

橫向展示

# 可以通過(guò)orientation='horizontal'和 cumulative=True 繪制橫向和累積直方圖
df["a"].plot.hist(orientation="horizontal", cumulative=True)

多子圖展示

# 繪制多子圖
df.hist(color="k", alpha=0.5, bins=50)

單個(gè)直方圖(自定義分箱+透明度)

# 以下2種方式效果一致
df.hist('a', bins = 20, alpha=0.5)
# df.a.hist(bins = 20, alpha=0.5)

分組

# by 分組
np.random.seed(1)
data = pd.Series(np.random.randn(1000))
data.hist(by=np.random.randint(0, 4, 1000), figsize=(6, 4))

箱線圖

箱線圖又稱盒須圖、箱型圖等,用于顯示一組數(shù)據(jù)分布情況的統(tǒng)計(jì)圖。

np.random.seed(1)
df = pd.DataFrame(np.random.rand(10, 5), columns=["A", "B", "C", "D", "E"])
df.head()

df.boxplot()

指定元素顏色

# 指定元素顏色
color = {
  "boxes": "Green", # 箱體顏色
  "whiskers": "Orange", # 連線顏色
  "medians": "Blue", # 中位數(shù)顏色
  "caps": "Gray", # 極值顏色
}

df.boxplot(color=color, sym="r+")

橫向展示

df.boxplot(vert=False, positions=[1, 4, 5, 6, 8])

面積圖

面積圖又稱區(qū)域圖,是將折線圖與坐標(biāo)軸之間的區(qū)域使用顏色填充,填充顏色可以很好地突出趨勢(shì)信息,一般顏色帶有透明度會(huì)更合適于觀察不同序列之間的重疊關(guān)系。

np.random.seed(1)
df = pd.DataFrame(np.random.rand(10, 4), columns=["a", "b", "c", "d"])
df.head()

默認(rèn)情況下,面積圖是堆疊的

# 默認(rèn)是堆疊
df.plot.area()

單個(gè)面積圖

df.a.plot.area()

取消堆疊

# 取消堆疊
df.plot.area(stacked=False)

散點(diǎn)圖

散點(diǎn)圖就是將數(shù)據(jù)點(diǎn)展示在直角坐標(biāo)系上,可以很好地反應(yīng)變量之間的相互影響程度

np.random.seed(1)
df = pd.DataFrame(np.random.rand(50, 4), columns=["a", "b", "c", "d"])

df["species"] = pd.Categorical(
  ["setosa"] * 20 + ["versicolor"] * 20 + ["virginica"] * 10
)

df.head()

指定一組數(shù)據(jù)

df.plot.scatter(x="a", y="b")

多組數(shù)據(jù)并用不同顏色標(biāo)注

ax = df.plot.scatter(x="a", y="b", color="Blue", label="Group 1")
df.plot.scatter(x="c", y="d", color="red", label="Group 2", ax=ax)

一組數(shù)據(jù),x/y及z,其中x/y表示位置、z的值用于顏色區(qū)分

df.plot.scatter(x="a", y="b", c="c", s=50) # 參數(shù)s代表散點(diǎn)大小

一組數(shù)據(jù),然后分類并用不同顏色(色系下)表示

df.plot.scatter(x="a", y="b", c="species", cmap="viridis", s=50)

氣泡圖

df.plot.scatter(x="a", y="b", color="red", s=df["c"] * 200)

餅圖

餅圖主要用于不同分類的數(shù)據(jù)占總體的比例情況

np.random.seed(8)
series = pd.Series(3 * np.random.rand(4), index=["a", "b", "c", "d"], name="series")
series

series.plot.pie(figsize=(6, 6), fontsize=20)

多子圖展示

np.random.seed(8)
df = pd.DataFrame(
     3 * np.random.rand(4, 2), index=["a", "b", "c", "d"], columns=["x", "y"]
 )
df

df.plot.pie(subplots=True, figsize=(8, 4), fontsize=16)

指定顯示樣式

series.plot.pie(
     labels=["AA", "BB", "CC", "DD"], # 標(biāo)簽
     colors=["r", "g", "b", "c"], # 指定顏色
     autopct="%.2f", # 數(shù)字格式(百分比)
     fontsize=20,
     figsize=(6, 6),
 )

如果數(shù)據(jù)總和小于1,可以繪制扇形

series = pd.Series([0.1] * 4, index=["a", "b", "c", "d"], name="series2")
series.plot.pie(figsize=(6, 6), normalize=False)

4. 其他圖表類型

在常見(jiàn)圖表中,有密度圖和六邊形箱型圖 繪制過(guò)程報(bào)錯(cuò),暫時(shí)沒(méi)有解決(本機(jī)環(huán)境:pandas1.3.1)

本節(jié)主要介紹散點(diǎn)矩形圖、安德魯曲線等,更多資料大家可以查閱官方文檔了解

https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html

散點(diǎn)矩形圖

from pandas.plotting import scatter_matrix

df = pd.DataFrame(np.random.randn(1000, 4), columns=["a", "b", "c", "d"])
scatter_matrix(df, alpha=0.2, figsize=(6, 6), diagonal="kde")

安德魯曲線

from pandas.plotting import andrews_curves

data = pd.read_csv("iris.csv")
andrews_curves(data, "Name")

總結(jié)

到此這篇關(guān)于Pandas可視化圖表的文章就介紹到這了,更多相關(guān)Pandas可視化圖表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python數(shù)據(jù)類型之列表和元組的方法實(shí)例詳解

    Python數(shù)據(jù)類型之列表和元組的方法實(shí)例詳解

    這篇文章主要介紹了Python數(shù)據(jù)類型之列表和元組的相關(guān)知識(shí),列表是一組有序項(xiàng)目的集合 ,可變的數(shù)據(jù)類型可 進(jìn)行增刪改查,本文通過(guò)實(shí)例文字相結(jié)合的形式給大家介紹的非常詳細(xì) ,需要的朋友可以參考下
    2019-07-07
  • Python走樓梯問(wèn)題解決方法示例

    Python走樓梯問(wèn)題解決方法示例

    這篇文章主要介紹了Python走樓梯問(wèn)題解決方法,結(jié)合實(shí)例形式分析了Python基于遞歸與迭代思想解決走樓梯問(wèn)題的相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • python機(jī)器學(xué)習(xí)包mlxtend的安裝和配置詳解

    python機(jī)器學(xué)習(xí)包mlxtend的安裝和配置詳解

    這篇文章主要介紹了python機(jī)器學(xué)習(xí)包mlxtend的安裝和配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Django封裝交互接口代碼

    Django封裝交互接口代碼

    這篇文章主要介紹了Django封裝交互接口代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • python動(dòng)畫manim中的顏色ManimColor的使用方法詳解

    python動(dòng)畫manim中的顏色ManimColor的使用方法詳解

    這篇文章主要介紹了python動(dòng)畫manim中的顏色ManimColor的使用方法,本文通過(guò)實(shí)例圖文展示給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • Python函數(shù)參數(shù)匹配模型通用規(guī)則keyword-only參數(shù)詳解

    Python函數(shù)參數(shù)匹配模型通用規(guī)則keyword-only參數(shù)詳解

    Python3對(duì)函數(shù)參數(shù)的排序規(guī)則更加通用化了,即Python3 keyword-only參數(shù),該參數(shù)即為必須只按照關(guān)鍵字傳遞而不會(huì)有一個(gè)位置參數(shù)來(lái)填充的參數(shù)。這篇文章主要介紹了Python函數(shù)參數(shù)匹配模型通用規(guī)則keyword-only參數(shù),需要的朋友可以參考下
    2019-06-06
  • python+pygame實(shí)現(xiàn)簡(jiǎn)易五子棋小游戲的三種方式

    python+pygame實(shí)現(xiàn)簡(jiǎn)易五子棋小游戲的三種方式

    這篇文章主要介紹了使用python實(shí)現(xiàn)簡(jiǎn)易五子棋小游戲,文中提供了三種實(shí)現(xiàn)方式,解決思路和部分實(shí)現(xiàn)代碼,感興趣的朋友可以參考下
    2023-03-03
  • python pandas生成時(shí)間列表

    python pandas生成時(shí)間列表

    這篇文章主要介紹了python pandas生成時(shí)間列表,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-06-06
  • Python中實(shí)現(xiàn)參數(shù)類型檢查的簡(jiǎn)單方法

    Python中實(shí)現(xiàn)參數(shù)類型檢查的簡(jiǎn)單方法

    這篇文章主要介紹了Python中實(shí)現(xiàn)參數(shù)類型檢查的簡(jiǎn)單方法,本文講解使用裝飾器實(shí)現(xiàn)參數(shù)類型檢查并給出代碼實(shí)例,需要的朋友可以參考下
    2015-04-04
  • 使用Python編寫類UNIX系統(tǒng)的命令行工具的教程

    使用Python編寫類UNIX系統(tǒng)的命令行工具的教程

    這篇文章主要介紹了使用Python編寫類UNIX系統(tǒng)的命令行工具的教程,本文來(lái)自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下
    2015-04-04

最新評(píng)論

海晏县| 钦州市| 长兴县| 香港 | 乌兰察布市| 涪陵区| 巨鹿县| 霸州市| 大名县| 澳门| 靖安县| 泸水县| 安远县| 临夏市| 吴旗县| 开江县| 海南省| 屏边| 临城县| 崇义县| 吕梁市| 遵义市| 自贡市| 襄城县| 鄂托克旗| 平陆县| 呼图壁县| 尖扎县| 克拉玛依市| 曲阜市| 安多县| 衢州市| 营山县| 洛南县| 亳州市| 法库县| 弋阳县| 兴宁市| 伽师县| 玉树县| 固阳县|