当前位置:   article > 正文

matplotlib绘图大全_matplotlib画图

matplotlib画图

前言

本文的思路很简单,就是展示几个画图的例子,你可以先看图,找到你所需要的样式,然后看代码。

import matplotlib.pyplot as plt
import numpy as np
  • 1
  • 2

示例展示

示例1
示例2
示例3
示例4
示例5
示例6
示例7
示例8:敬请期待

示例一

a=np.array([[1,2,3],[2,5,0]])
figure=plt.figure(figsize=(20,8),dpi=80)
x=a[0]
y=a[1]
plt.plot(x,y,color="r",linestyle="-.")
plt.xticks(x,x)
#plt.xticks(())  # ignore xticks
plt.yticks(y,y)
plt.grid(True,linestyle="--",alpha=0.5)
plt.title("example1")
plt.xlabel("x")
plt.ylabel("y")
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

示例二

N = 50 # 点的个数
x = np.random.rand(N)  # 随机产生50个0~1之间的x坐标
y = np.random.rand(N)  # 随机产生50个0~1之间的y坐标
colors = np.random.rand(N) # 随机产生50个0~1之间的颜色值,每个点的颜色。
area = np.pi * (5*np.random.rand(N)+5)**2  # 点的半径范围:5~10 ,每个点所占据的面积,是随机的,你可以固定下来。
# 画散点图
plt.scatter(x, y, s=area, c=colors, alpha=0.5, marker="o")#后面4个参数都可以不写,会使用默认的。
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

示例三

a=np.random.rand(3,3)
plt.matshow(a,cmap="gist_rainbow")
plt.colorbar(fraction=0.025)
plt.show()
  • 1
  • 2
  • 3
  • 4

给定一个矩阵,生成一个矩阵图,矩阵每个位置的颜色随着值的变化而变化。
所以需要用到很多颜色,cmap作用就是将值的大小,映射到一个颜色上。

示例四

x=[172,178,180,177,175,170,168,175,176,175,170,177,184]
bins=np.arange(np.min(x),np.max(x)+1,2)
plt.hist(x,bins=bins,color="g")
  • 1
  • 2
  • 3

在这里插入图片描述

绘制直方图的逻辑和通常我们想象的并不一样,一开始我没有意识到,然后就犯错了。

我想的是输入区间以及区间上的值,然后命令matplotlib绘制。然而matplotlib有点不同,区间仍然要输入,也就是上面的bins参数,但是区间上的值不是直接输入,而是间接输入。什么意思呢?我们只需要输入我们的数据(我这里是男生身高数据:cm)。

x=[172,178,180,177,175,170,168,175,176,175,170,177,184]
  • 1

就行了,matplotlib会按照我们上面的bins区间参数,自动帮我们统计[168,170)等各个区间的人数有多少,并且返回。也就是说,上面代码plt.hist其实不但会输出直方图,而且还会输出帮你统计好的区间上的值。如下:

在这里插入图片描述
举例解释:[168,170)有1人,[170,172)有2人,…。

示例五

labels=["man","woman"]
x=np.arange(2)
place=["paris","london"]
number=np.array([[80,120],[90,110]])
colors=np.random.rand(2,3)#随机生成颜色
for i in range(len(place)):
    plt.plot(x,number[i],color=colors[i],label=place[i])

plt.ylabel("number of people")
plt.xticks(x, labels)
plt.legend()
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

示例六

plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文。
labels = ['娱乐','育儿','饮食','房贷','交通','其它']
sizes = [2,5,12,70,2,9]
explode = (0,0,0,0.1,0,0)#这个表示的是房贷那一块离开圆心多远。
plt.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',shadow=False,startangle=150)
plt.title("饼图示例-8月份家庭支出")
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

示例七

x = [2,4,6,7,8,5,4,3]
y = [3,6,5,8,4,3,2,4]
txt = ["a","b","c","d","e","f","g","h"]

import matplotlib.pyplot as plt
plt.scatter(x, y)
for i in range(len(x)):
    plt.annotate(txt[i], xy = (x[i], y[i]), xytext = (x[i]+0.1, y[i])) # 这里xy是需要标记的坐标,xytext是对应的标签坐标
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

附录

常用color

比如绘制散点图的时候,不同类别可以绘制不同的颜色。颜色有哪些?一种方法是使用下面列出的,还有一种方法就是生成0-1之间的值,其对应了一个颜色。

'b'          蓝色
'g'          绿色
'r'          红色
'c'          青色
'm'          品红
'y'          黄色
'k'          黑色
'w'          白色
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
常用linestyle

可以用在折线图中。

-‘:实线(solid line style)--‘:虚线(dashed line style)-.’:点划线(dash-dot line style):’:点线(dotted line style)
  • 1
  • 2
  • 3
  • 4
常用marker

常用在散点图中

.’:点(point marker)
‘o’:圆形(circle marker)
‘s’:正方形(square marker)*’:星型(star marker)
  • 1
  • 2
  • 3
  • 4

更多可以参考:https://matplotlib.org/stable/api/markers_api.html?highlight=marker#module-matplotlib.markers,其实就是在官方文档中搜索marker。

常用cmap

常用在矩阵图中,比如还有散点图也可以,每一个点都是不同的颜色,此时也可以使用这个东西。不过值得一提的是,这个东西经常和colorbar一起使用。

viridis:深紫绿黄渐变(3色)
gist_rainbow:彩虹颜色渐变,即红橙黄绿青蓝紫渐变(7色)
Greens:绿色渐变,由浅入深。(1色)
Oranges:.....1色)
  • 1
  • 2
  • 3
  • 4

这有更多https://matplotlib.org/2.0.2/examples/color/colormaps_reference.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/115632
推荐阅读
相关标签
  

闽ICP备14008679号