到目前为止,您已经学习了如何创建许多不同的图表类型。现在,再学习一些可以用来改变图表样式的快速命令。 你学到了什么? 由于决定如何最好地讲述数据背后的故事并不总是很容易,因此我们将图表类型分为三大类来帮助解决这个问题。 趋势——趋势被定义为变化的模式。 sns.lineplot-线状图最适合显示一段时间内的趋势,多条线可以用来显示多个组中的趋势。 关联 – 您可以使用许多不同的图表类型来理解数据中变量之间的关系。 sns.barplot– 条形图用于比较不同组对应的数量。 sns.heatmap– 热力图采用颜色的深浅、点的疏密以及呈现比重的形式。 sns.scatterplot – 散点图显示了两个连续变量之间的关系;如果用颜色标识,我们还可以显示与第三个分类变量的关系。 sns.regplot – 在散点图中包含一条回归线可以更容易地看到两个变量之间的任何线性关系。 sns.lmplot – 如果散点图包含多个颜色编码的组,此命令对于绘制多个回归线很有用。 sns.swarmplot – 分类散点图显示连续变量和分类变量之间的关系。 分布 – 我们可视化分布,以显示我们可以期望在变量中看到的可能值,以及它们的可能性。 sns.distplot – 直方图表示单个数值变量的分布。 sns.kdeplot – KDE图(或2D KDE图)显示了单个数值变量(或两个数值变量)的估计、平滑分布。 sns.jointplot – 此命令对于同时显示2D KDE图以及每个单独变量对应的KDE图非常有用。 改变风格 所有的命令都为每个图提供了一个漂亮的默认样式。但是,您可能会发现定制您的图的外观很有用,幸运的是,只需添加多一行代码就可以实现这一点! 与往常一样,我们需要从设置编码环境开始。 import pandas as pd import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns print("Setup Complete") 我们将使用与在前一个教程中创建折线图相同的代码。下面的代码加载数据集并创建图表。 # Path of the file to read spotify_filepath = "../input/spotify.csv" # Read the file into a variable spotify_data spotify_data = pd.read_csv(spotify_filepath, index_col="Date", parse_dates=True) # Line chart plt.figure(figsize=(12,6)) sns.lineplot(data=spotify_data) 输出: <matplotlib.axes._subplots.AxesSubplot at 0x7f07838a9e10> 我们可以使用一行代码快速将图形的样式更改为不同的主题。 # Change the style of the figure to the …
在本教程中,您将学习有关直方图和密度图的所有信息。 准备好笔记本 和往常一样,我们从设置编码环境开始。 import pandas as pd import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns print("Setup Complete") 选择一个数据集 我们将使用一个包含150种不同花的数据集,或来自三种不同鸢尾属的各50种花的数据集。 加载并检查数据 数据集中的每一行对应于不同的花。有四种测量方法:萼片的长度和宽度,以及花瓣的长度和宽度。我们也跟踪相应的物种。 # Path of the file to read iris_filepath = "../input/iris.csv" # Read the file into a variable iris_data iris_data = pd.read_csv(iris_filepath, index_col="Id") # Print the first 5 rows of the data iris_data.head() 输出: 直方图 假设我们想要创建一个直方图来查看鸢尾花的花瓣长度是如何变化的。我们可以用sns.distplot命令来做。 # Histogram sns.distplot(a=iris_data[‘Petal Length (cm)’], kde=False) 输出: /opt/conda/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either in an error …
在本教程中,您将学习如何创建高级散点图。 准备好笔记本 和往常一样,我们从设置编码环境开始。 import pandas as pd import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns print("Setup Complete") 加载并检查数据 我们将使用一个(合成的)保险费用数据集,看看我们是否能理解为什么有些客户比其他人支付更多。 如果您愿意,您可以在这里阅读关于数据集的更多信息。 # Path of the file to read insurance_filepath = "../input/insurance.csv" # Read the file into a variable insurance_data insurance_data = pd.read_csv(insurance_filepath) 与往常一样,我们通过打印前五行来检查数据集是否正确加载。 insurance_data.head() 散点图 要创建简单的散点图,我们使用sns.scatterplot命令并指定以下值: 水平x轴(x = insurance_data [‘bmi’]),和 垂直y轴(y = insurance_data [‘charge’])。 sns.scatterplot(x=insurance_data[‘bmi’], y=insurance_data[‘charges’]) 输出: <matplotlib.axes._subplots.AxesSubplot at 0x7f19008afd68> 上面的散点图表明,体重指数(BMI)和保险费用正相关,而BMI较高的客户通常也倾向于支付更高的保险费用。 (这种模式是有道理的,因为高BMI通常与慢性疾病的高风险相关。) 要仔细检查此关系的强度,您可能希望添加回归线或最适合数据的线。 我们通过将命令更改为sns.regplot来完成此操作。 sns.regplot(x=insurance_data[‘bmi’], y=insurance_data[‘charges’]) 输出: /opt/conda/lib/python3.6/site-packages/scipy/stats/stats.py:1713: FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use `arr[tuple(seq)]` instead of `arr[seq]`. In the future this will be interpreted as an array index, `arr[np.array(seq)]`, which will result either …
现在您可以创建自己的折线图了,现在让我们学习更多的图表类型了! 顺便说一下,如果这是您第一次使用Python编写代码,那么您应该为到目前为止所完成的一切感到非常自豪,因为学习一项全新的技能从来都不是一件容易的事!如果您坚持使用微课程,您会注意到所有事情只会变得更简单(而您将构建的图表将会更令人印象深刻!),因为所有图表的代码都非常相似。像任何技能一样,随着时间的推移和重复,编码变得很自然。 在本教程中,您将了解柱状图和热力图。 准备好笔记本 和往常一样,我们从设置编码环境开始。 import pandas as pd import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns print("Setup Complete") 选择一个数据集 在本教程中,我们将使用来自美国交通部的数据集来跟踪航班延误。在Excel中打开这个CSV文件,会显示每个月的一行(其中1 = January, 2 = February等)和每个航空公司代码的一列。 每个记录显示不同航空公司和月份的平均到达延迟(以分钟为单位)(均为2015年)。 负数记录表示(平均)倾向于提前到达的航班。 例如,1月份美国航空公司的平均航班(航空公司代码:AA)迟到了大约7分钟,4月阿拉斯加航空公司的平均航班(航空公司代码:AS)提前大约3分钟到达。 加载数据 和前面一样,我们使用pd.read_csv命令加载数据集。 # Path of the file to read flight_filepath = "../input/flight_delays.csv" # Read the file into a variable flight_data flight_data = pd.read_csv(flight_filepath, index_col="Month") 您可能会注意到代码略短于我们在上一个教程中使用的代码。 在这种情况下,由于行标签(来自’Month’列)与日期不对应,因此我们不在括号中添加parse_dates = True。 但是,我们像以前一样保留前两个文本,以提供两者: 数据集的文件路径(在本例中为flight_filepath)和 将用于索引行的列的名称(在本例中,index_col =’Month’)。 检查数据 由于数据集很小,我们可以轻松地打印它的所有内容。这是通过编写只有数据集名称的一行代码来实现的 # Print the data flight_data 柱状图 假设我们想创建一个柱状图,显示精灵航空(航空公司代码:NK)航班的平均到达延迟,按月显示。 # Set the width and height of the figure plt.figure(figsize=(10,6)) # Add title plt.title("Average Arrival Delay for Spirit Airlines Flights, by Month") # Bar chart showing average arrival …
现在您已经熟悉了编码环境,接下来学习如何制作自己的图表! 在本教程中,您将学习怎样用Python来创建专业的线形图。在接下来的练习中,您将使用您的新技能来处理真实世界的数据集。 准备好笔记本 我们首先设置编码环境。 import pandas as pd import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns print("Setup Complete") 选择一个数据集 本教程的数据集是采用音乐流服务Spotify上的全球每日流行歌曲。 我们专注于2017年和2018年的五首流行歌曲: “Shape of You”, by Ed Sheeran “Despacito”, by Luis Fonzi “Something Just Like This”, by The Chainsmokers and Coldplay 4.”HUMBLE.”, by Kendrick Lamar “Unforgettable”, by French Montana 请注意,第一个出现的日期是2017年1月6日,与Ed Sheeran的《Shape of You》的发行日期相对应。而且,通过这个表格,你可以看到《Shape of You》在发行当天在全球被播放了12,287,078次。请注意,其他歌曲在第一行中缺少值,因为它们发布比较晚! 加载数据 正如您在上一篇教程中了解到的,我们使用pd.read_csv命令加载数据集。 # Path of the file to read spotify_filepath = "../input/spotify.csv" # Read the file into a variable spotify_data spotify_data = pd.read_csv(spotify_filepath, index_col="Date", parse_dates=True) 运行上述两行代码的最终结果是,我们现在可以通过使用spotify_data访问数据集。 检查数据 我们可以使用您在上一个教程中学习的head命令打印数据集的前五行。 # Print the first 5 rows of the data spotify_data.head() 输出: 现在检查前五行是否与上面数据集的图像一致(从我们看到它在Excel中的样子时开始)。 空条目将显示为NaN,这是“Not a Number”的缩写。我们还可以通过做一个小的修改(其中.head()变成.tail())来查看数据的最后五行: # …
欢迎使用数据可视化:在这个动手实践的微课程中,您将学习如何使用seaborn(一种功能强大但易于使用的数据可视化工具)将您的数据可视化提升到新的水平。 要使用seaborn,您还将学习如何使用Python(一种流行的编程语言)编写代码。 那说, 微课程针对那些没有任何编程经验的人, 每个图表使用简短的代码,使得seaborn比许多其他数据可视化工具(例如Excel)更快更容易使用。 所以,如果你从未编写过一行代码,并且想要了解最低限度,以便开始制作更快,更具吸引力的情节,那么你就是在正确的地方! 要查看您将要制作的一些图表,请查看下面的图表。 编码环境 现在花点时间在这个页面上快速滚动。 您会注意到有很多不同类型的信息,包括: 文字(就像你现在正在阅读的文字一样!), 代码(始终包含在称为代码单元格的灰色框内),以及 代码输出(或运行代码的打印结果,始终显示在相应代码的正下方)。 我们将这些页面称为Jupyter笔记本(或者通常只是笔记本),我们将在整个微课程中使用它们。 笔记本的另一个例子可以在下面的图像中找到。 在您正在阅读的笔记本中,我们已经为您运行了所有代码。 很快,您将使用可以编写和运行自己的代码的笔记本! 设置笔记本 您需要在每个笔记本的顶部运行几行代码来设置编码环境。 现在理解这些代码行并不重要,因此我们暂不讨论细节。 (请注意,它将作为输出返回:Setup Complete。) import pandas as pd import matplotlib.pyplot as plt %matplotlib inline import seaborn as sns # Set up code checking from learntools.core import binder binder.bind(globals()) from learntools.data_viz_to_coder.ex1 import * print("Setup Complete") 本地无法运行? 加载数据 在这个笔记本中,我们将使用六个国家的历史FIFA排名数据集:阿根廷(ARG),巴西(BRA),西班牙(ESP),法国(FRA),德国(GER)和意大利(ITA)。 数据集存储为CSV文件(逗号分隔值文件的缩写)。在Excel中打开CSV文件会显示每个日期的行,以及每个国家/地区的列。 要将数据加载到笔记本中,我们将使用两个不同的步骤,在下面的代码单元中实现,如下所示: 首先指定可以访问数据集的位置(或文件路径),然后 使用文件路径将数据集的内容加载到笔记本中。 # Path of the file to read fifa_filepath = "../input/fifa.csv" # Read the file into a variable fifa_data fifa_data = pd.read_csv(fifa_filepath, index_col="Date", parse_dates=True) 请注意,上面的代码单元有四条不同的行。 评论其中两行前面有一个井号(#),并包含显示为褪色和斜体的文本。 运行代码时,计算机完全忽略了这两行,并且它们只出现在此处,以便任何读取代码的人都可以快速理解它。 我们将这两行称为注释,并且最好包含它们以确保您的代码易于解释。 可执行代码另外两行是可执行代码,或由计算机运行的代码(在这种情况下,用于查找和加载数据集)。 第一行将fifa_filepath的值设置为可以访问数据集的位置。 在这种情况下,我们为您提供了文件路径(在引号中)。 请注意,此行可执行代码正上方的注释提供了它的功能的快速描述! 第二行设置fifa_data的值以包含数据集中的所有信息。 这是通过pd.read_csv完成的。 紧接着是三个不同的文本(上图中带下划线),括在括号中并用逗号分隔。 这些用于在数据集加载到笔记本中时自定义行为: fifa_filepath– 始终需要首先提供数据集的文件路径。 index_col ="Date" – 当我们加载数据集时,我们希望第一列中的每个条目表示不同的行。 …