Seaborn热图教程–综合教程
在本文中,我们将讨论通过Seaborn Heatmaps进行数据可视化。
了解Seaborn库中的热图
Python提供了各种模块来以可视化的形式准备和呈现数据,以便更好地了解所构建的数据模型。
Python Seaborn模块用于可视化数据并以图形格式浏览数据的各个方面。
它建立在Python Matplotlib模块之上,该模块也提供了以多种方式绘制数据的功能。
Seaborn不能被视为Matplotlib的替代品,但实际上可以被视为数据探索和可视化的辅助功能。
Seaborn具有多个内置功能来构建用于数据可视化的图形。
HeatMaps是数据探索和可视化方向上的重要功能之一。
Seaborn热图以二维格式表示数据。
热图使数据可视化,并通过图形/彩色图以摘要的形式表示。
它使用各种调色板和不同的参数为图形添加更多的可视化功能,从而有效地增加了对数据的探索。
为了开始使用Heatmaps,我们需要使用以下语法安装Seaborn模块:
语法:
pip install seaborn
Seaborn要求事先安装以下模块:
- 大Pandas
- NumPy
- Matplotlib
1.创建一个热图
让我们使用以下语法创建一个基本的"热图",以创建提供给它的数据的可视化图表。
语法:
seaborn.heatmap(data)
例:
import numpy as np import seaborn as sn import matplotlib.pyplot as plt data_plot = np.random.rand(6,5) map = sn.heatmap(data_plot) plt.show()
在上面的代码片段中,我们使用了" numpy.random.rand(m,n)函数"来随机生成一些具有6行5列的数据以馈入热图。
此外," pyplot.show()函数"用于以正确的格式表示热图。
2.删除HeatMap中的标签
从上面的热图表示中可以看出,由x轴和y轴表示的值/数据点被称为刻度标签。
它们代表使用热图绘制和可视化的数据的比例。
勾号标签具有以下类型:
- X-tick标签
- y-tick标签
从HeatMap移除y标签
默认情况下,刻度标签出现在热图中。
为了删除y-tick,我们可以使用以下语法:
seaborn.heatmap(data,yticklabels=False)
例:
import numpy as np import seaborn as sn import matplotlib.pyplot as plt data_plot = np.random.rand(6,5) map = sn.heatmap(data_plot,yticklabels=False) plt.show()
从HeatMap移除x标签
要删除x-tick标签刻度,请使用以下语法:
seaborn.heatmap(data,xticklabels=False)
例:
import numpy as np import seaborn as sn import matplotlib.pyplot as plt data_plot = np.random.rand(6,5) map = sn.heatmap(data_plot,xticklabels=False) plt.show()
3.在HeatMap中设置标签
为了给热图增加更好的价值和理解,可以添加有助于理解可视化数据的更多标签。
1.设置x标签
使用matplotlib内置函数,可以使用以下语法将文本标签添加到x-tick轴:
pyplot.xlabel("label")
例:
import numpy as np import seaborn as sn import matplotlib.pyplot as plt data_plot = np.random.rand(6,5) map = sn.heatmap(data_plot) plt.xlabel("Numbers") plt.show()
2.设置y-label
以类似的方式,可以灌输以下语法以将文本标签添加到y-tick轴:
pyplot.ylabel("label")
例:
import numpy as np import seaborn as sn import matplotlib.pyplot as plt data_plot = np.random.rand(6,5) map = sn.heatmap(data_plot) plt.ylabel("Range") plt.show()
4.将文本值添加到HeatMap
我们可以使用以下语法添加由Heatmap的二维格式表示的值,该值将为更好地理解表示的数据增加价值:
seaborn.heatmap(data,annot=True)
" annot参数"设置为True,以显示由热图绘制的数据。
示例1:使用热图将文本值添加到随机生成的数据
import numpy as np import seaborn as sn import matplotlib.pyplot as plt data_plot = np.random.rand(6,5) map = sn.heatmap(data_plot,annot=True) plt.xlabel("Numbers") plt.ylabel("Range") plt.show()
示例2:从数据集中添加数据值以在热图中表示
import pandas as pd import seaborn as sn import matplotlib.pyplot as plt data = pd.read_csv("C:/Python_edwisor/mtcars.csv") data_set = pd.DataFrame(data.iloc[1:5,1:5]) map = sn.heatmap(data_set,annot=True) plt.show()
5. Seaborn HeatMaps中的ColorMaps
色彩图有助于有效地了解热图所显示的数据。
色图表示数据的分布,其中我们可以根据色条中颜色表示的最小值和最大值来分析数据。
1.顺序色图
当数据经历数据/人口值的逐渐线性增长时,将使用顺序色图。
因此,顺序色图可分别用于表示从低值到高值的线性上升。
我们可以通过将cmap attribute
设置为'cubehelix'来实现顺序色图
语法:
seaborn.heatmap(data,cmap='cubehelix')
例:
import pandas as pd import seaborn as sn import matplotlib.pyplot as plt data = pd.read_csv("C:/Python_edwisor/mtcars.csv") data_set = pd.DataFrame(data.iloc[1:5,1:5]) map = sn.heatmap(data_set,annot=True,cmap="cubehelix") plt.show()
2.分散调色板
发散调色板会创建一个颜色图,作为两种颜色之间发散的组合。
语法:
cmap = seaborn.diverging_palette(h_neg and h_pos, sep=value, l=value, as_cmap=True)
h_neg和h_pos:地图的正负扩展值。
范围介于0-359之间。l:用于在地图的两个范围内增加亮度。
范围介于0到100之间。sep
:sep参数代表热图中数据中间区域的大小。as_cmap:一个布尔参数,当设置为True时,它代表matplotlib颜色图对象。
例:
import pandas as pd import seaborn as sn import matplotlib.pyplot as plt data = pd.read_csv("C:/Python_edwisor/mtcars.csv") data_set = pd.DataFrame(data.iloc[1:5,1:5]) cmap = sn.diverging_palette(320, 40, sep=40, as_cmap=True) map = sn.heatmap(data_set,annot=True,cmap=cmap) plt.show()
3.明暗调色板colorMap
使用seaborn热图,我们可以获得混合了亮或者暗值的色图,以更好的方式可视化数据。
混合色图的类型:
Light Palette Colormap
:它将给定的颜色从浅到深混合,代表从低到高的总体数据。"深色调色板颜色图":它将给定的颜色从暗到亮混合在一起,代表从低到高的数据。
语法:调色板
cmap = seaborn.light_palette("color-code",as_cmap=True)
示例1:调色板
import pandas as pd import seaborn as sn import matplotlib.pyplot as plt data = pd.read_csv("C:/Python_edwisor/mtcars.csv") data_set = pd.DataFrame(data.iloc[1:5,1:5]) cmap = sn.light_palette("#3fdd01", as_cmap=True) map = sn.heatmap(data_set,annot=True,cmap=cmap) plt.show()
语法:深色调色板
seaborn.dark_palette("color-code",as_cmap=True)
示例2:深色调色板
import pandas as pd import seaborn as sn import matplotlib.pyplot as plt data = pd.read_csv("C:/Python_edwisor/mtcars.csv") data_set = pd.DataFrame(data.iloc[1:5,1:5]) cmap = sn.dark_palette("#3fdd01", as_cmap=True) map = sn.heatmap(data_set,annot=True,cmap=cmap) plt.show()
4.离散ColorMap
如果数据集/人口包含离散的数据值,我们可以使用" seaborn.mpl_palette()函数"以离散的颜色表示离散值。
语法:
seaborn.mpl_palette("Set3",value)
- Set3:它是调色板的名称(在这里与其他颜色图一起玩)
- "值":调色板中要显示的离散颜色的数量。
例:
import pandas as pd import seaborn as sn import matplotlib.pyplot as plt data = pd.read_csv("C:/Python_edwisor/mtcars.csv") data_set = pd.DataFrame(data.iloc[1:5,1:5]) cmap = sn.mpl_palette("Set3", 20) map = sn.heatmap(data_set,annot=True,cmap=cmap) plt.show()
6. Seaborn HeatMap颜色条
彩条提供有关可视化数据表示的颜色的信息,并且还表示描述热图绘制的数据的值的范围。
默认情况下,热图中会显示一个颜色列。
如果我们希望从热图中删除颜色条,则以下语法可以帮助您解决该问题:
seaborn.heatmap(data,cbar=False)
范例1:
import numpy as np import seaborn as sn import matplotlib.pyplot as plt data_plot = np.random.rand(6,5) map = sn.heatmap(data_plot,annot=True,cbar=False) plt.xlabel("Numbers") plt.ylabel("Range") plt.show()
我们可以使用以下语法,通过提供颜色列颜色所代表的值的比例尺范围来自定义热图:
seaborn.heatmap(data,cmap,vmin=value,vmax=value)
范例2:
import pandas as pd import seaborn as sn import matplotlib.pyplot as plt data = pd.read_csv("C:/Python_edwisor/mtcars.csv") data_set = pd.DataFrame(data.iloc[1:5,1:5]) cmap = sn.mpl_palette("Set3", 5) map = sn.heatmap(data_set,annot=True,cmap=cmap,vmin=10, vmax=20) plt.show()
在上面的示例中,我们将颜色条的比例设置为10-20。