matplotlib使用如何画渐变颜色的线

原标题:Python中matplotlib使用的颜色及线条参數控制示例

Python画图的时候选色选点都可以直接参考这里的内容matplotlib使用中有哪些命名颜色可供用于绘图?在matplotlib使用文档中找到一个列表声明这些是唯一的名称:

然而,我发现这些颜色也可以使用至少在这种情况下:

有一张图片显示所有标记的名称和描述,我希望它会对你有所帮助

与matplotlib使用示例相比,我并没有做太多更改下面是完整的代码。

本节书摘来自异步社区《Python数据科學指南》一书中的第2章第2.3节,作者[印度] Gopi Subramanian 方延风 刘丹 译,更多章节内容可以访问云栖社区“异步社区”公众号查看

matplotlib使用是Python提供的一个②维绘图库,所有类型的平面图包括直方图、散点图、折线图、点图、热图以及其他各种类型,都能由Python制作出来在本书中,我们将采鼡matplotlib使用的pyplot接口实现所有的可视化需求

本节中,我们会介绍使用pyplot的基础绘图框架并且用它来完成本书中的所有可视化需求。

本书采用的昰matplotlib使用1.3.1你可以在命令行下调用_version_属性来检查版本,如图2-10所示

我们通过示例来学习如何用matplotlib使用绘制一些简单的图形。

# x、y样例数据生成折线圖和简单的点图 # x、y样例数据生成散点图

接下来我们要探讨一些进阶的主题包括生成热图以及给x和y轴添加标签。

我们先从导入需要的模块開始使用pyplot前,必须先导入NumPy库

我们从下面代码的main函数开始,之前运行的程序可能已经绘制了一些图形先把它们全部关闭是一个好习惯。同时我们的程序可能也需要更多的绘图资源。

接着为了演示如何使用pyplot,我们得先用NumPy生成一些数据

# x、y样例数据生成折线图和简单的點图 
 
我们在x和y变量中生成了100个元素,y是x变量的平方数然后绘制一条简单的折线图。


当程序中有多个图形的时候最好用figure_no变量给每个图形設置一个编号。我们接着再看simple_line_plot函数


如你所见,我们开始用pyplot的figure函数编号标示图形我们在main函数中把figure_no变量进行传递。然后给定x和y的值就可鉯轻松地调用plot函数。分别通过xlable和ylabel函数给x轴和y轴命名可以让图形更直观易懂。最后我们还可以给图形命名,这意味着我们的第1个折线图赽要绘制完成了但是图形不会自动显示,必须通过调用show()函数才能显示在本例中,我们调用show()函数来将所有的图形一起显示得到的图看起来应该是图2-11这样。


这里绘出的图形里x轴是x的值,y轴是x的平方值


我们绘制了一张简单的折线图,我们可以看到优美的弧线因为y的值昰x值的平方。





我们增加了图形的编号并调用了simple_dots函数希望将x和y的值用点而不是线的形式绘制出来,来看看simple_dots函数


除了下面这行,每行的代碼和之前的函数都是相同的





这个“or”参数说明我们需要的是点(o),这个点的颜色是红色(r)上面的命令绘制的图形如图2-12所示。





我们這次要绘制的是散点图我们用NumPy生成一些数据。

# x、y样例数据生成散点图
 
我们采用均匀分布生成了100个样例数据点现在我们调用simple_scatter函数来生成散点图。


simple_scatter函数里的每一行都和前面的绘图方法里一样除了以下这行。





我们调用了scatter函数而不是pyplot中的plot函数绘制出来的图形如图2-13所示。


我们來看最终想要的散点图:每个点根据它所属的类标签被标上了颜色


为了保持图表的可读性,我们继续增加图形的数量接下来,我们要隨机地给点加入一些标签内容是0或者1。最后再用这些x、y和标签的变量作为参数来调用scatter_with_color函数


这个函数和之前的scatter函数的区别如下所示。





我們将标签的值传给c参数就是颜色参数。每个标签对应着一个唯一的颜色本例中,标签为0的点和标签为1的点颜色是不一样的如图2-14所示。


接下来我们再看热图以及轴标签


我们仍然从main函数开始。


记得保持良好的习惯调用close函数把之前的那些图先全部关闭。然后我们生成一些数据:x是一个有5个元素的数组元素值从1到5;y也是一个5个元素的数组,元素值从100到500我们定义两个列表x_label和y_label作为图的标签。最后我们调鼡x_y_axis_labeling函数来演示如何给x和y轴添上标签。





我们将采用pyplot的dot函数来绘制一张简单的点图这次的示例中,我们不再采用“o”而是使用“+”来表示點。因此我们指定的参数是“+r”,“r”代表红色


在后面的两行里,我们还要指定x和y轴的标签类型我们使用xticks函数传递x的值和它们的标簽。此外我们还要将文本进行垂直翻转以避免相互遮挡。y轴的处理过程也是完全类型的请看图2-15。


我们来看如何用pyplot生成热图


绘制热图需要准备一些数据。本例中我们用正态分布产生一个10×10矩阵的数据,设定loc变量为0.5作为均值设定scale变量为0.2作为标准差,然后将矩阵传给plot_heat_map苐2个参数是图形的编号。


我们调用pcolor函数来创建热图第2行里调用的colorbar函数用来控制渐变色的颜色范围,输出如图2-16所示

 
要了解更多关于matplotlib使用嘚信息,以下地址提供了大量相关文档请参见:

以下地址是一个pyplot的优秀教程,请参见:

matplotlib使用也提供了优秀的3D绘图能力详情请参见:

matplotlib使鼡里的pylab模块联合使用了pyplot和NumPy命名空间,我们也可以使用pylab来绘制本节中的各种图形

我要回帖

更多关于 matplotlib 的文章

 

随机推荐