2025年3月30日 星期日 甲辰(龙)年 月廿九 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

python --Matplotlib详解

时间:08-17来源:作者:点击数:35

python --Matplotlib详解

安装

  • pip install matplotlib

导包

  • import matplotlib.pyplot as plt

绘制散点图

如果输入的是两个列表,一个表示 x 轴的值,一个表示 y 轴的值,那么就可以在直角坐标系中划出很多个点,然后将这些点用指定的线段连接起来就得到了散点图。

可以使用 plt.plot(x, y, 风格) 来达到目的,其中的风格有很多种,如点状、小叉、圆圈、不同颜色等。

  • import matplotlib.pyplot as plt
  • x = [1, 2, 3, 4]
  • y = [2, 4, 2, 6]
  • y1 = [e+1 for e in y]
  • y2 = [e+2 for e in y]
  • plt.plot(x, y, "b.") # b:蓝色,.:点
  • plt.plot(x, y1, "ro") # r:红色,o:圆圈
  • plt.plot(x, y2, "kx") # k:黑色,x:x字符(小叉)
  • plt.show() # 在窗口显示该图片
在这里插入图片描述

我们可以看到不同颜色、不同线型、不同的点的形状。

上述代码的第 9 行用来显示图片,但这并不是最好的使用方式。本章后面的部分会将产生的图片保存到 png 文件中。可以使用下面的代码来替换第 9 行的代码:

  • plt.savefig("demo1.png")

绘制折线图

折线图和点状图类似,只是在风格上有所不同。我们需要指定线型,如“-”表示实线、“–”表示虚线、“-.”表示带点的虚线、“:”表示完全用点来组成的虚线。

  • import matplotlib.pyplot as plt
  • x = [1, 2, 3, 4]
  • y = [1, 2, 3, 4]
  • y1 = [e+1 for e in y] # 计算y的值
  • y2 = [e+2 for e in y]
  • y3 = [e+3 for e in y]
  • plt.plot(x, y, "b.-") # b:蓝色,.:点,-:线
  • plt.plot(x, y1, "ro--") # r:红色,o:圆圈,--:短线连接起来
  • plt.plot(x, y2, "kx-.") # k:黑色,x:x字符,-.:点和线
  • plt.plot(x, y3, "c*:") # c:蓝绿色,*:*字符,::点组成的线
  • plt.savefig("demo1.png") # 将图片保存到文件中
在这里插入图片描述

其实参数 x 是可选的,如果不填写,那么 x=[1,2,3,…]。例如上面的代码可以写成下面的样子,而含义没有任何差别;

  • import matplotlib.pyplot as plt
  • y = [1, 2, 3, 4] # 4组数据
  • y1 = [e+1 for e in y]
  • y2 = [e+2 for e in y]
  • y3 = [e+3 for e in y]
  • plt.plot(y, "b.-") # 没有x参数
  • plt.plot(y1, "ro--") # r:红色,o:圆圈,--:短线连接起来
  • plt.plot(y2, "kx-.") # k:黑色,x:x字符,-.:点和线
  • plt.plot(y3, "c*:") # c:蓝绿色,*:*字符,::点组成的线
  • plt.savefig("demo3.png")

颜色的表示法对应关系

表示法 颜色
‘b’ 蓝色
‘g’ 绿色
‘r’ 红色
‘c’ 蓝绿色
‘m’ 品红
‘y’ 黄色
‘k’ 黑色

点的样式对应关系

表示法 颜色
‘o’ 小圆圈
‘v’ 朝下的三角形
‘^’ 朝上的三角形
‘>’ 朝右的三角形
‘<’ 朝左的三角形
‘x’
‘+’ 加号
‘s’ 方框

线型的样式对应关系

表示法 颜色
‘-’ 实线
‘–’ 虚线
‘-.’ 带有点的虚线
‘:’ 点组成的虚线

绘制柱状图

柱状图和散点图类似,也是需要两个参数 x 和 y,但画出来的效果差别很大,而且需要使用 bar() 函数而不是 plot() 函数

  • import matplotlib.pyplot as plt
  • x = [1, 2, 3, 4]
  • y = [1, 2, 3, 4]
  • y1 = [e+1 for e in y]
  • y2 = [e+2 for e in y]
  • y3 = [e+3 for e in y]
  • plt.bar(x, y)
  • plt.savefig("bardemo1.png")
在这里插入图片描述

可以修改柱体的颜色,通过参数 color 来完成。例如将以上代码的第 7 行进行如下修改:

  • plt.bar(x, y, color="red")

也可以设定柱体边框的颜色,通过参数 edgecolor 来完成。例如将以上代码的第 7 行修改为:

  • plt.bar(x, y, color="red", edgecolor="black")
在这里插入图片描述

x 轴除了可以是数字信息外,也可以是其他信息。例如可以用柱状图来表示几种编程语言的受欢迎程度,代码如下:

  • import matplotlib.pyplot as plt
  • language = ('Python', 'C++', 'Java', 'Perl', 'Scala', 'Lisp')
  • x_pos = range(len(language)) # [0, 1, 2, 3, 4, 5, 6]
  • pop = [10, 8, 6, 4, 2, 1]
  • plt.bar(x_pos, pop, align='center', alpha=0.5)
  • plt.xticks(x_pos, language)
  • plt.ylabel('Popularity')
  • plt.title('Programming Language Popularity)
  • plt.savefig("demo4.png")
在这里插入图片描述

绘制水平柱状图

将柱状图中的 bar 改成 barh 即可,barh 表示 horizon bar,就是水平的柱状图。其用法和垂直的柱状图类似,下面是一个使用的例子:

  • import matplotlib.pyplot as plt
  • language = ('Python', 'C++', 'Java', 'Perl', 'Scala', 'Lisp')
  • x_pos = range(len(language)) # [0, 1, 2, 3, 4, 56]
  • pop = [10, 8, 6, 4, 2, 1]
  • plt.barh(x_pos, pop, align='center', alpha=0.5)
  • plt.yticks(x_pos, language)
  • plt.xlabel('Popularity')
  • plt.title('Programming Language Popularity')
  • plt.savefig("demo5.png")
在这里插入图片描述

绘制饼图

可以使用 pie() 函数来画饼图。下面是最简单的饼图,表示 4 个城市的高技术产值。

  • import matplotlib.pyplot as plt
  • lbs = ["Beijing", "Shanghai", "Guangzhou", "Shenzhen"] # 标签
  • vals = [50, 20, 10, 20]
  • plt.pie(vals, labels=lbs)
  • plt.savefig("piedemo1.png")
在这里插入图片描述

也可以使用 explode 参数表示某个单元是否被切出来,以及切出来的长度。例如希望上海和广州被切出来,那么可以使用下面的代码:

  • import matplotlib.pyplot as plt
  • lbs = ["Beijing", "Shanghai", "Guangzhou", "shenzhen"] # 标签
  • vals = [50, 20, 10, 20]
  • # 0表示不切出来,否则表示切出来,值越大切出的距离越大
  • explode = (0, 0.1, 0.2, 0)
  • plt.pie(vals, explode=explode, labels=lbs)
  • plt.savefig("piedemo2.png")
在这里插入图片描述

也可以用 colors 参数来表示各个块的颜色,这也是一个字符串的列表,如下面的代码所示:

  • import matplotlib.pyplot as plt
  • lbs = ["Beijing", "Shanghai", "Guangzhou", "shenzhen"]
  • vals = [50, 20, 10, 20] # 值的列表
  • explode = (0, 0.1, 0.2, 0) # 切出的长度
  • color_list =['red', 'blue', 'yellow', 'gray'] # 颜色列表
  • plt.pie(vals, explode=explode, colors=color_list, labels=lbs) # 饼图
  • plt.savefig("piedemo3.png") # 保存到png文件中
在这里插入图片描述
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐