数据可视化是以图形格式表示数据。它通过以简单易懂的格式汇总和呈现大量数据来帮助人们了解数据的重要性,并有助于清晰有效地传达信息。
考虑给定的数据集,我们将为其绘制不同的图表:
1.直方图:表示特定现象发生的频率,这些现象在特定的值范围内并以连续和固定的间隔排列。
在下面的代码中,绘制了直方图,输出中的这些图显示了每个属性的每个唯一值的频率。
# import pandas and matplotlib
import pandas as pd
import matplotlib.pyplot as plt
# create 2D array of table given above
data = [['E001', 'M', 34, 123, 'Normal', 350],
['E002', 'F', 40, 114, 'Overweight', 450],
['E003', 'F', 37, 135, 'Obesity', 169],
['E004', 'M', 30, 139, 'Underweight', 189],
['E005', 'F', 44, 117, 'Underweight', 183],
['E006', 'M', 36, 121, 'Normal', 80],
['E007', 'M', 32, 133, 'Obesity', 166],
['E008', 'F', 26, 140, 'Normal', 120],
['E009', 'M', 32, 133, 'Normal', 75],
['E010', 'M', 36, 133, 'Underweight', 40] ]
# dataframe created with
# the above data array
df = pd.DataFrame(data, columns = ['EMPID', 'Gender',
'Age', 'Sales',
'BMI', 'Income'] )
# create histogram for numeric data
df.hist()
# show plot
plt.show()
输出:
2.柱形图:用于显示不同属性之间的比较,或者可以显示随时间变化的项目比较。
# Dataframe of previous code is used here
# Plot the bar chart for numeric values
# a comparison will be shown between
# all 3 age, income, sales
df.plot.bar()
# plot between 2 attributes
plt.bar(df['Age'], df['Sales'])
plt.xlabel("Age")
plt.ylabel("Sales")
plt.show()
输出方式:
3.箱形图:基于的统计数据的图形表示最大值、最小值等
# For each numeric attribute of dataframe
df.plot.box()
# individual attribute box plot
plt.boxplot(df['Income'])
plt.show()
输出形式:
4.饼图:
饼图显示一个静态数字,以及类别如何表示整体中某物组成的一部分。
饼图以百分比表示数字,所有细分的总和必须等于100%。
plt.pie(df['Age'], labels = {"A", "B", "C",
"D", "E", "F",
"G", "H", "I", "J"},
autopct ='% 1.1f %%', shadow = True)
plt.show()
plt.pie(df['Income'], labels = {"A", "B", "C",
"D", "E", "F",
"G", "H", "I", "J"},
autopct ='% 1.1f %%', shadow = True)
plt.show()
plt.pie(df['Sales'], labels = {"A", "B", "C",
"D", "E", "F",
"G", "H", "I", "J"},
autopct ='% 1.1f %%', shadow = True)
plt.show()
输出方式:
5.散点图:散点图显示两个不同变量之间的关系,并且可以显示分布趋势。
当有许多不同的数据点,并且您想突出显示数据集的相似性时,在寻找异常值和了解数据分布时都可以运用
# scatter plot between income and age
plt.scatter(df['income'], df['age'])
plt.show()
# scatter plot between income and sales
plt.scatter(df['income'], df['sales'])
plt.show()
# scatter plot between sales and age
plt.scatter(df['sales'], df['age'])
plt.show()
输出形式: