matplotlib绘图模板

折线图

效果
在这里插入图片描述
模板代码

from matplotlib import pyplot as plt
import matplotlib

matplotlib.rc("font",family='MicroSoft YaHei')#设置中文字体

##折线图
x = range(2,26,2)
y = [15,13,14.5,17,20,25,26,26,24,22,18,15]
y2 = [i-1 for i in y]

#设置图片大小、清晰程度
fig = plt.figure(figsize=(20,8),dpi=80)

#绘图
plt.plot(x,y,label="y1")
plt.plot(x,y2,label="y2")
plt.legend()

#绘制x、y轴刻度
_xtick_labels = [i/2 for i in range(4,49)]
plt.xticks(_xtick_labels)
plt.yticks(range(min(y),max(y)+1))
#调整x、y轴刻度
_x = x
_xticks_labels = ["杨{}".format(i) for i in _x]
plt.xticks(_x,_xticks_labels,rotation=-90)#rotation,旋转

#添加描述信息
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.title("标题")

#绘制网格
plt.grid(alpha=0.4)#透明度,

#保存(可以保存svg格式)
plt.savefig("./temp.png")
plt.show()

散点图

效果
在这里插入图片描述
模板代码

from matplotlib import pyplot as plt
import matplotlib

matplotlib.rc("font",family='MicroSoft YaHei')#设置中文字体

##散点图
y_3 = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]
y_10 = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6]
x_3 = range(1,32)
x_10 = range(51,82)

#设置图形大小
plt.figure(figsize=(20,8),dpi=80)

#画图
plt.scatter(x_3,y_3,label="3月份")
plt.scatter(x_10,y_10,label="10月份")
plt.legend(loc="upper left")

#调整x/y轴坐标
_x = list(x_3)+list(x_10)
_xtick_labels = ["3月{}日".format(i) for i in x_3]
_xtick_labels += ["10月{}日".format(i) for i in x_3]
plt.xticks(_x[::3],_xtick_labels[::3],rotation=45)

#添加描述信息
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("标题")

plt.show()

条形图

效果
在这里插入图片描述
模板代码

from matplotlib import pyplot as plt
import matplotlib

matplotlib.rc("font",family='MicroSoft YaHei')#设置中文字体

##条形图
x = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5:最后的骑士",
    "摔跤吧!爸爸","加勒比海盗5:死无对证","金刚:骷颅岛","极限特工:终极回归","生化危机6:终章"]
y = [56.01,26.94,17.53,16.49,15.45,
    12.96,11.8,11.61,11.28,11.12]

plt.figure(figsize=(20,8),dpi=80)
plt.bar(range(len(x)),y,width=0.5)

plt.xticks(range(len(x)),x,rotation=45)
plt.xlabel("电影名")
plt.ylabel("票房")
plt.title("标题")

plt.show()

多次条形图

效果
在这里插入图片描述

模板代码

from matplotlib import pyplot as plt
import matplotlib

matplotlib.rc("font",family='MicroSoft YaHei')#设置中文字体

#多次条形图

x=["猩球崛起3:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]
y1 = [15746,312,4497,319]
y2 = [12357,156,2045,168]
y3 = [2358,399,2358,362]

bar_width = 0.2
x1 = list(range(len(x)))
x2 = [i+bar_width for i in x1]
x3 = [i+bar_width for i in x2]

plt.figure(figsize=(20,8),dpi=80)
plt.bar(x1,y1,width=bar_width,label="9月14日")
plt.bar(x2,y2,width=bar_width,label="9月15日")
plt.bar(x3,y3,width=bar_width,label="9月16日")
plt.legend()

plt.xticks(x2,x)
plt.xlabel("电影名")
plt.ylabel("票房")
plt.title("标题")

plt.show()

直方图

效果
在这里插入图片描述

模板代码

from matplotlib import pyplot as plt
import numpy as np
import matplotlib
import math

matplotlib.rc("font",family='MicroSoft YaHei')#设置中文字体


#直方图(等组距)
x = np.random.normal(110,10,250)
x=[int(i) for i in x]

d = 5 #组距
num_bins = math.ceil((max(x)-min(x))/d) #组数

plt.figure(figsize=(20,8),dpi=80)
plt.hist(x,num_bins,range=(min(x),min(x)+num_bins*d)) #normed=True频率直方图

plt.xticks(range(min(x),max(x)+d,d))
plt.xlabel("数量")
plt.ylabel("频数")
plt.title("标题")

plt.show()

用条形图绘制直方图

效果
在这里插入图片描述

代码模板

from matplotlib import pyplot as plt
import numpy as np
import matplotlib
import math

matplotlib.rc("font",family='MicroSoft YaHei')#设置中文字体

#用条形图绘制直方图(非等组距、各组数已知)
interval = [0,5,10,15,20,25,30,35,40,45,60,90]
width = [5,5,5,5,5,5,5,5,5,15,30,60]
y = np.random.normal(110,50,12)

plt.figure(figsize=(20,8),dpi=80)
plt.bar(range(len(y)),y,width=1)

_x = [i-0.5 for i in range(13)]
_xticks_labels = interval+[150]
plt.xticks(_x,_xticks_labels)
plt.xlabel("数量")
plt.ylabel("频数")
plt.title("标题")

plt.show()

其它绘图工具

  1. 百度echarts:http://echarts.apache.org/zh/index.html
  2. plotly:https://plotly.com/
  3. seaborn:http://seaborn.pydata.org/
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值