2021-09-13 数据分析 matplotlib绘制折线图

1.conda
创建环境:conda create --name python_bai python=3.7
激活环境:activate python_bai
安装包:conda\pip install 包名
2.matplotlib折线图
(1) 绘图基础

from matplotlib import pyplot as plt

x = range(2,26,2)
y = [15,13,14,15,17,16,25,26,22,23,17,19]

#设置图片大小
fig = plt.figure(figsize=(15,8),dpi=100) #宽20高8,像素100

#绘制折线图
plt.plot(x,y)

#绘制x轴的刻度
#plt.xticks(range(2,25))  #用range控制步长,但最小步长只能为1
_xtick_label = [i/2 for i in range(4,49) ] #先弄小
plt.xticks(_xtick_label[::3]) #再随意调

#绘制y轴的刻度
plt.yticks(range(min(y),max(y)+1) )

#保存
plt.savefig('t1.png')

#展示图
plt.show()

(2)坐标轴显示时间(字符串显示)
导入font_manager:
import matplotlib.font_manager as fm
定义中文字体:
myfont = fm.FontProperties(fname='C:/Windows/Fonts/msyh.ttc')
x轴用定义的字体:
plt.xticks(_x[::10],_xtick_labels[::10],rotation = 45,fontproperties=myfont)

# -*- coding: GBK -*-
from  matplotlib import pyplot as plt
import random
import matplotlib.font_manager as fm
# 微软雅黑,如果需要宋体,可以用simsun.ttc
myfont = fm.FontProperties(fname='C:/Windows/Fonts/msyh.ttc')

y = [ random.randint(20,35) for i in range(120)]
x = range(0,120)
plt.plot(x,y)

#调整x轴的刻度
_x = list(x) #转为列表,range不能取步长,后面需要取步长
_xtick_labels = ['10点{0}分'.format(i) for i in range(60)] + ['11点{0}分'.format(i) for i in range(60)]
plt.xticks(_x[::10],_xtick_labels[::10],rotation = 45,fontproperties=myfont) #把数值型对应到字符串,rotation旋转度数

#添加描述消息
plt.xlabel('时间',fontproperties=my_font)
plt.ylabel('温度\℃',fontproperties=my_font)
plt.title('10点到12点的温度变化图',fontproperties=my_font)

plt.show()

在这里插入图片描述

(3)多条折现及图例
plot时可以设置:
label,用于添加图例
linestyle,
在这里插入图片描述
marker,标记,^,>,<,v,o等等
linewidth
color,可以输单词,和颜色代码(16进制,百度搜)
alpha,透明度,0-1

from matplotlib import pyplot as plt
import matplotlib.font_manager as fm
my_font =  fm.FontProperties(fname='C:/Windows/Fonts/msyh.ttc')
#数据
x = range(11,31)
y1 = [1,0,1,1,2,4,3,4,4,5,6,5,4,3,3,1,1,1,1,1]
y2 = [3,1,2,3,1,7,4,4,3,7,7,6,5,1,1,1,1,1,1,1]
#绘图
plt.plot(x,y1,label ='自己',color = '#930000',linestyle = ':',marker = '^')
plt.plot(x,y2,label= '同桌',color = 'cyan',linestyle = '--')
#设置x轴
x_lable = ['{0}岁'.format(i) for i in x]
plt.xticks(x,x_lable,rotation = 45,fontproperties = my_font)
plt.xlabel('年龄',fontproperties = my_font)
plt.ylabel('个数',fontproperties = my_font)
plt.title('11到30岁女朋友个数(我和同桌)',fontproperties = my_font)
#绘制网格
plt.grid(alpha = 0.1) #alpha设置透明度,0-1
#添加图例
plt.legend(prop = my_font,loc = 'upper right')
plt.show()

在这里插入图片描述

总结:
在这里插入图片描述
matplotlib样例网站,可以照着代码画自己的图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值