探索不同类型的图,最佳实践和有效数据可视化的技巧
#python #matplotlib #visualization #100daysofdatascience

100天的第6天数据科学训练营从NOOB到专家。

github链接:Complete-Data-Science-Bootcamp

主要帖子:Complete-Data-Science-Bootcamp

回顾第5天

昨天我们在python中详细研究了熊猫。

开始吧

matplotlib是python编程语言及其数字数学扩展numpy的绘图库。它提供了面向对象的API,用于使用TKINTER,WXPYTHON,QT或GTK等通用GUI工具包将图嵌入应用中。 Matplotlib是数据科学中数据可视化的强大工具,可用于创建各种各样的图,包括线图,散点图,条图,直方图,3D图等。 Matplotlib的一些关键功能包括对可自定义的绘图样式和颜色地图的支持,交互式绘图操作以及各种用于创建出版物质量数字的导出选项。

线图:

线图是一种沿数字线显示数据的方法。随着时间的流逝显示趋势或比较多组数据很有用。它是使用matplotlib中的plot函数创建的,该函数将x和y数据作为参数吸收。在我给出的示例中,x数据是0到10之间的100个均匀分布点的数组,y数据是x值的正弦。

x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.xlabel('X')
plt.ylabel('sin(X)')
plt.title('Line plot')
plt.show()

Line Plot

散点图:

使用散点图显示两个变量之间的关系。它是使用matplotlib中的scatter函数创建的,该函数将x和y数据作为参数吸收。在我给出的示例中,x和y是使用numpy的random.normal函数生成的随机值的数组。它显示了数据点的相关性或分布。

x = np.random.normal(loc=0.0, scale=1.0, size=100)
y = np.random.normal(loc=0.0, scale=1.0, size=100)
plt.scatter(x, y)
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Scatter plot')
plt.show()

Scatter Plot

酒吧图:

条图用于比较不同类别的值。它是使用matplotlib中的bar函数创建的,该函数将x和y数据作为参数以x和y数据的形式创建。在我给出的示例中,x数据是一个分类值('a','b','c','d')的数组,y数据是一个值。

x = np.array(['A', 'B', 'C', 'D'])
y = np.array([1, 2, 3, 4])
plt.bar(x, y)
plt.xlabel('Category')
plt.ylabel('Value')
plt.title('Bar plot')
plt.show()

Bar Plot

直方图:

使用直方图显示单个变量的分布。它是使用Matplotlib中的hist函数创建的,该功能将数据和垃圾箱的数量作为参数创建。在我给出的示例中,数据是使用numpy的random.normal函数生成的1000个随机值的数组,箱数为30。直方图图显示了不同垃圾箱中值的频率,其中每个垃圾箱代表一个值范围。

x = np.random.normal(loc=0.0, scale=1.0, size=1000)
plt.hist(x, bins=30)
plt.xlabel('X')
plt.ylabel('Frequency')
plt.title('Histogram')
plt.show()

Histogram

箱形图:

盒子图用于显示一组数据的分布和离群值。它是使用Seaborn中的boxplot函数创建的,该功能将数据和变量绘制为参数。在我给出的示例中,数据是使用numpy的random.normal函数生成的随机值的数组。

import seaborn as sns

x = np.random.normal(loc=0.0, scale=1.0, size=100)
sns.boxplot(x=x)
plt.xlabel('X')
plt.title('Box plot')
plt.show()

Box Plot

热图:

热图用于可视化具有多个变量的大数据。它是使用Seaborn中的heatmap函数创建的,该函数将数据作为参数。在我给出的示例中,数据是使用numpy的random.normal函数生成的2D随机值阵列。单元格的颜色表示矩阵中每个元素的值。

x = np.random.normal(loc=0.0, scale=1.0, size=(10, 10))
sns.heatmap(x)
plt.title('Heatmap')
plt.show()

Heat Map

小提琴图:

小提琴图与框图相似,但在不同值下也显示数据的概率密度。它们可以使用Seaborn中的violinplot函数创建

x = np.random.normal(loc=0.0, scale=1.0, size=100)
sns.violinplot(x)
plt.xlabel('X')
plt.title('Violin plot')
plt.show()

Violin Plot

蜂群:

使用群图来显示单个分类变量的分布。它是使用Seaborn中的群函数创建的,该函数将数据和变量绘制为参数。在我给出的示例中,x数据是使用随机的随机值的一个随机值的数组。numpy和y数据的正常函数是分类值的数组(0,1)

x = np.random.normal(loc=0.0, scale=1.0, size=10)
y = np.random.randint(0,2,size=10)
sns.swarmplot(x=x, y=y)
plt.xlabel('X')
plt.ylabel('Category')
plt.title('Swarm plot')
plt.show()

Swarm Plot

饼形图 :

饼图用于显示单个变量中不同类别的比例。它是使用matplotlib中的PIE函数创建的,该功能将数据和标签作为参数捕获。在我给出的示例中,数据是代表每个类别大小的值数组,标签是每个类别的名称。此外,您可以使用AUTOPCT参数在图表上添加每个切片的数值。

sizes = [15, 30, 45, 10]
labels = ['Frogs', 'Hogs', 'Dogs', 'Logs']
plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.axis('equal')
plt.title('Pie chart')
plt.show()

Pie Chart

堆叠的酒吧图:

堆叠的条图用于显示另一个变量的分解。它是使用matplotlib中的条函数和条函数的底部属性创建的。在我给出的示例中,将两组数据绘制为单独的条,一个数据在另一个条上,以显示一个变量的崩溃。传说用于区分两组数据。

N = 5
menMeans = (20, 35, 30, 35, 27)
womenMeans = (25, 32, 34, 20, 25)
menStd = (2, 3, 4, 1, 2)
womenStd = (3, 5, 2, 3, 3)
ind = np.arange(N)    # the x locations for the groups
width = 0.35       # the width of the bars: can also be len(x) sequence

p1 = plt.bar(ind, menMeans, width, yerr=menStd)
p2 = plt.bar(ind, womenMeans, width,
             bottom=menMeans, yerr=womenStd)

plt.ylabel('Scores')
plt.title('Scores by group and gender')
plt.xticks(ind, ('G1', 'G2', 'G3', 'G4', 'G5'))
plt.yticks(np.arange(0, 81, 10))
plt.legend((p1[0], p2[0]), ('Men', 'Women'))

plt.show()

Stacked bar plot

总而言之,Matplotlib和Seaborn是数据科学中数据可视化的强大库。它们为创建不同类型的图提供了广泛的选择,从简单的线图到更复杂的热图和小提琴图。每种类型的情节都有其自己的优势,可用于有效地传达不同类型的信息。

创建剧情时,重要的是要考虑数据的上下文和图。选择正确的图类型取决于数据的性质以及您想要与图的交流。此外,您还应该注意该情节的细节,例如标签,鳞片和颜色,以确保您的情节易于阅读和理解。

最后,始终牢记您拥有的数据以及要显示的重要信息,这将确保您选择正确的绘图类型并自定义以清晰有效地传达正确的信息。

练习问题,您将在Github的第6天的练习笔记本中找到。

如果您喜欢它,然后...

Buy Me A Coffee