python matplotlib笔记大全

matplotlib笔记大全

## 设置数值
from matplotlib import pyplot as plt
x = range(2, 26, 2) 
y = [2, 5, 3, 9, 5, 3, 4, 8, 6, 4, 2, 1]
'''新建一个画布'''
 # figsize:图片宽和高,dpi:q清晰度
plt.figure(1, figsize=(20,8), dpi=80)  
plt.subplot(2,2,1)  # 子图两行两列第一个
# 画折线图
plt.plot(x,y,color="orange", linewidth=1.0, linestyle="-", label="temp" )
plt.plot(x,y,color="cyan", linewidth=1.0, linestyle="-", label="temp1" )
# 绘制散点图:
Plt.scatter(x,y,color="orange",label="temp" )  #设置颜色,标签(画图例用)

'''设置图像描述信息'''
#图标题
plt.title("10点到12点每分钟气温变化情况",fontproperties=my_font)    
 #x,y轴坐标名称
plt.xlabel("time") 
plt.ylabel("temp")
 #绘制图例, plt.plot(x,ylabel="temp1")的label:加标题,loc:设置位置
plt.legend(loc='upper left',prop=my_font ) 

'''设置轴坐标'''
# x轴显示范围
plt.xlim(min(x),max(x)*1.1)  
 #x,y轴坐标刻度的密度
plt.xticks(x)  #x=range(2, 26, 2) ,每两个显示数字
plt.yticks(range(min(y),max(y)+1))   #横轴设置为2,4,6,...24
“设置轴步长”
# _x = list(x)[::10] #只有列表能[::3]取步长,range不能取步长
_x = list(x)
_xtick = [10{}分”.format(i) for i in range(60)]
_xtick= [11{}分”.format(i) for i in range(60)]
#取步长,数字和字符串一一对应,数据的长度一样
plt.xticks(_x[::3],_xtick[::3],fontproperties=my_font)     #设置x轴对应的标识

“设置中文字体”
一 plt.rcParams[‘font.sans-serif’]=[‘SimHei’] # 在代码前面加上一次这个就直接能显示中文

二 另一种方法
from matplotlib import font_manager #①导入库
① 从window导入字体
my_font = font_manager.FontProperties(fname=“C:/Windows/Fonts/simhei.ttf”)
② 在需要的地方加上fontproperties=my_font,即可显示中文字体
plt.xticks(list(x)[::10],_xtick[::10],fontproperties=my_font)
③在绘制图例说明的时候用prop
plt.legend(loc=‘upper left’,prop=my_font )

# 绘制网格  alpha:网格透明度,0全透明
plt.grid(alpha=0.3) # 网格的疏密可以通过设置xticks和yticks
#绘制条形图
plt.bar(range(len(a)),y,width=0.2,color="orange") # x,y
_a = list(i[:2] for i in a) #取电影名前两个
plt.xticks(range(len(a)),_a,rotation=0)# 设置X轴标识
# 横着的条形图
plt.barh(range(len(a)), y, height=0.5)  #变width用hight
plt.yticks(range(len(a)),_a) #变xticks用yticks
#绘制多个条形图
a = ["猩球崛起3:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]
b_16 = [15746,312,4497,319]
b_15 = [12357,156,2045,168]
b_14 = [2358,399,2358,362]

bar_width = 0.2  # 宽度必须小于0.33,否则会重叠
x_14 = list(range(len(a)))
x_15 =[i+bar_width for i in x_14]
x_16 =[i+2*bar_width for i in x_14]

#多个条形图画一个表上
plt.bar(x_14,b_14,width=bar_width, label="14号") # 先画一溜
plt.bar(x_15,b_15,width=bar_width, label="15号") # 再画一溜
plt.bar(x_16,b_16,width=bar_width, label="16号") # 再画一溜

# 横着的条形图
plt.barh(range(len(a)), y, height=0.5)
_a = list(i[:4] for i in a) #取前两个
plt.yticks(range(len(a)),_a)  # 此时标签用y
# 设置x轴刻度
plt.xticks(x_15,a)
plt.legend() # 设置图例
plt.grid(alpha=0.3)
多个条形图可以用来做数量统计、频率统计
绘制直方图(连续)
d = 5 # 组距
num_bins = (max(a)-min(a))//d #计算组数
# 数据、组数(用组距计算比较好)range设置范围,density=True归一化
plt.hist(a,num_bins,range=(min(a),min(a)+(num_bins)*d),density=True)    
plt.xticks(range(min(a),max(a)+d,d))  # 设置x轴显示的数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值