02-matplotlib折线图

什么是matplotlib

最流行的python底层绘图库,主要做数据可视化图表,名字取自MATLAB,模仿MATLAB创建

matplot基本要点

axis轴:指的是x或者y这种坐标轴

# -*- coding: utf-8 -*-
"""
Created on Thu Feb 20 13:12:17 2020

@author: X星云Nebularr
"""
# 导入了pyplot模块并进行重命名
from matplotlib import pyplot as plt

x = range(2, 26, 2) # 数据在x轴的位置,是一个可迭代对象
y = [15, 13, 14.5, 17, 20, 25, 26, 26, 24, 22, 18, 15] 
# 数据在y轴的位置,是一个可迭代对象

plt.plot(x, y) #传入x和y,通过plot绘制出折线图
plt.show() #展示图形

运行结果:
对应的折线图
需要完善的几个问题:

  • 设置图片大小 :figure方法(设置dpi和figsize属性)
  • x轴的刻度值:xticks方法(在plot方法前后都能使用;用列表生成式和切片可以得到想要的效果;字符串用等)
  • 无法显示中文:https://www.jianshu.com/p/57b94a2c0985
  • 双轴没有图形信息:xlabel和ylabel,title方法
  • 绘制网格:grid(),alpha透明度系数
  • 多表时添加图例:plot方法中设置label属性,并使用lengend方法。也可以用loc属性设置图例位置
  • 添加文本注释
  • 添加水印
# -*- coding: utf-8 -*-
"""
Created on Thu Feb 20 13:12:17 2020

@author: X星云Nebularr
"""
import matplotlib as mpl
from matplotlib import pyplot as plt # 导入了pyplot模块并进行重命名、
# matplotlib默认不支持中文
mpl.rcParams['font.sans-serif'] = ['MicroSoft YaHei']   #设置简黑字体
mpl.rcParams['axes.unicode_minus'] = False # 解决‘-’bug


fig = plt.figure(figsize = (20, 10), dpi = 80) # figsize设置图像尺寸大小,dpi参数可以让图像发大不失真
x = range(2, 26, 2) # 数据在x轴的位置,是一个可迭代对象,对range()必须转换为列表再取步长
y = [15, 13, 14.5, 17, 20, 25, 26, 26, 24, 22, 18, 15] # 数据在y轴的位置,是一个可迭代对象
y_1 = [16, 20, 15, 17, 20, 27, 26, 24, 24, 23, 14, 15]
_x = x
_xtick_list = ["时间.{}".format(i) for i in _x]
plt.xticks(_x, _xtick_list, rotation = 45) # 打印字符串需要一一对应 

#plt.xticks([i/2 for i in range(4, 49)][::3]) # 设置x轴刻度值
plt.yticks(range(min(y), max(y)+1)) # 设置y
plt.xlabel("时间/s")
plt.ylabel("温度/℃")
plt.title("某市区的温度统计图")
plt.grid(alpha = 0.4)
plt.plot(x, y, label = "A城", color = "green") #传入x和y,通过plot绘制出折线图
plt.plot(x, y_1, label = "B城", color = "cyan", linestyle = "--", linewidth = 4)
plt.legend(loc = "upper left")
plt.savefig("./fig.svg") # 可以保存成SVG矢量图格式,放大没有锯齿
plt.show() #展示图形


效果
在这里插入图片描述

matplot的散点图、直方图、柱状图

我们需要清楚不同图形的应用场景

  • 散点图:scatter方法,注意横坐标,避免数据重合
  • 条形图:bar方法,barh把轴交换,横向。
  • 直方图:hist

更多的画图工具

百度的echart
python的plotly

总结

在这里插入图片描述
在这里插入图片描述

后记

Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。

https://www.jianshu.com/p/f796f12555f6

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值