全文共 3576字,预计学习时长 10分钟或更长




python matplotlib如何关闭一个画布 matplotlib关闭图片_python seaborn


Seaborn和Matplotlib是Python最强大的两个可视化库。Seaborn其默认主题让人惊讶,而Matplotlib可以通过其多个分类为用户打造专属功能。


python matplotlib如何关闭一个画布 matplotlib关闭图片_已经安装matplotlib但无法导入_02


Python提供了各种用于绘制数据的包。本教程将使用以下两种包来演示Python的绘图功能:

· Matplotlib

· Seaborn


python matplotlib如何关闭一个画布 matplotlib关闭图片_python seaborn_03


Matplotlib

importmatplotlib.pyplot as plt
%matplotlib inline
import numpy as np

在上面的代码块中,将Pyplot模块调整为plt格式并导入Matplotliib库。这样做可以简化执行命令的过程,具体内容会在本篇教程中看到。PyPlot包含创建和编辑绘图所需的一系列命令。操作时同时运行%matplotlibinline,那么绘图下方就能自动显示代码块,否则用户每次绘图时都需要输入plt.show()来创建新图。此功能是Jupyter Notebook / IPython独有的。Matplotlib拥有定制的代码块结构,这使得它比其他绘图库更先进。接下来看看如何使用matploblib生成散点图。

提示:当使用matplotlib时,文本输出无法带来视觉上的吸引力。为了解决这个问题,我们在执行代码块生成图片时会在每一行代码末端添加分号“;”。

我们使用的数据库是UCI机器学习库中的共享单车数据集。

Matplotlib: 散点图

散点图是各种示意图中影响力最广、信息量最大、功能最多的一类图。它可以直接向用户传递信息,无需太多额外工作(如下图所示)。

· plt.scatter()将输入的散点图上的数据作为初始参数,其中temp指x轴,cnt指y轴。

· c指的是不同数据点的颜色。输入一个字符串“季节”,它也表示数据帧中的一列,不同颜色对应不同季节。该方法用可视化方法对数据分组,十分简单便捷。

plt.scatter('temp','cnt', data=day, c='season')
plt.xlabel('NormalizedTemperature', fontsize='large')
plt.ylabel('Countof Total Bike Rentals', fontsize='large');


python matplotlib如何关闭一个画布 matplotlib关闭图片_python seaborn_04


图上信息显示:

· 某些时间点的自行车租赁量超过8000辆。

· 标准温度超过0.8。

· 自行车租赁量与温度或季节无关。

· 自行车租赁量与标准温度之间含有正线性关系。

这个图的确含有大量信息,然而图表并不能产生图例,因此我们很难对各组季节数据进行破译。这是因为用散点图绘图时,Matplotlib无法根据绘图制作图例。下一节中,我们将会看到该图如何隐藏信息,甚至误导读者。

看看经过彻底编辑后的绘图。该图旨在根据不同组别绘制图例,并进行破译。

plt.rcParams['figure.figsize']= [15, 10]
fontdict={'fontsize':18,
 'weight' : 'bold',
 'horizontalalignment': 'center'}
fontdictx={'fontsize':18,
 'weight' : 'bold',
 'horizontalalignment': 'center'}
fontdicty={'fontsize':16,
 'weight' : 'bold',
 'verticalalignment': 'baseline',
 'horizontalalignment': 'center'}
spring =plt.scatter('temp', 'cnt', data=day[day['season']==1], marker='o',color='green')
summer =plt.scatter('temp', 'cnt', data=day[day['season']==2], marker='o', color='orange')
autumn =plt.scatter('temp', 'cnt', data=day[day['season']==3], marker='o',color='brown')
winter =plt.scatter('temp', 'cnt', data=day[day['season']==4], marker='o',color='blue')
plt.legend(handles=(spring,summer,autumn,winter),
 labels=('Spring', 'Summer','Fall/Autumn', 'Winter'),
 title="Season