matplotlib折线图

一、matplotlib简介

  1、matplotlib的用处

      1)将数据进行可视化,更直观的呈现出来。

      2)使数据更加客观,更具说服力

  2、什么是matplotlib

      最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建

  3、matplotlib基本要点

      axis轴(指的是x,y这类的坐标轴)

      坐标(代表每个点的位置)

*注意:x数据要与y数据一一对应

二、 简要绘制一个折线图

  1、导入pyplot

      

from matplotlib import pyplot as plt

  *注意:将其用plt表示,以后就用plt

  2、导入x,y轴的数据(都是可迭代对象)

  例如:

x = range(1,5)
y = [2,4,3,5]

##表示点(1,2),(2,3)...

  3、传入x,y通过plot绘制出折线图

plt.plot(x,y)

  4、展示

  

plt.show()

  效果展示:

  

三、设置图片绘制出的图片的大小与保存

  

plt.figure(figsize=(10,5),dpi=80)

  其中figsize中第一个数表示图片长度,第二个参数表示图片宽度

  当图像模糊时可以传入dpi参数,使图片更加清晰

  保存:

plt.savefig("./hhh_size.png")

*注意:保存要在图片绘制完之后,即plt.plot(x,y)之后

四、调整x或y轴的刻度

  ##使每个x的值都在图中得以显示

  ##若要使刻度更密,则用range

  ##若要使刻度变的更加精密,譬如精确到0.1,不可用range()来写,因为range不能接受float,需要建立一个列表,并将该列表导入x的刻度中

  1、设置刻度:

  

plt.xticks(x)
plt.yticks(y)

2、使刻度精密:

new_x_ticks = [i for i in x ] #先放入一个列表中
plt.xticks(x[::5],new_x_ticks[::5],rotation=270)#使用列表切片,每隔五个取一个数据进行展示,并将精度设置为5,rotation表示旋转x轴刻度,防止字重叠,这里指向左旋转270度

五、添加描述信息

  设置坐标轴的label,包括自变量名(因变量名),单位

plt.xlabel("时间(/h)") #设置x轴
plt.title("我爱死算法”) #设置标题

六、中文不显示问题

  解决办法1:

plt.rcParams['font.sans-serif'] = ['SimHei',]

  直接输入以上代码

  解决办法2:

  导入font_manager

from matplotlib import font_manager  #导入font_manager
new_font = font_manager.FontProperties(fname="/   ") #指定具体文字文件路径
plt.title("我爱死算法",fontproperties=new_font)  #每次使用中文时,需要添加fontproperties参数

七、多条折线的绘制与调整

  绘制:只需多次plot即可      

  调整:

    1、绘制网格

     

plt.grid(alpha=0.5) #alpha为设置网格透明度,当alpha=1时,格线最深

    2、图例

      第一步设置label="  "

      第二步添加图例

    

plt.plot(x,y1,label="不爱早八")
plt.plot(x,y2,label="爱死早八")
plt.legend(prop=new_font) #添加图例,特别注意,若这里要使用中文则要用prop=,不能用fontproperties=

      第三步调整图例使其在喜欢的地方

  

plt.legend(prop=new_font,loc="best") #表示设置图例位置在电脑觉得ok的地方

      其他地方:

  

  3、改变图线颜色与线条

plt.plot(x,y1,Label="不爱早八",color="orange",linestyle=":") #:即短连续虚线

八、绘制图表完整代码展示

  

from matplotlib import pyplot as plt
from matplotlib import font_manager
new_font = font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc")

y_1 = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
y_2 = [1,0,3,1,2,2,3,3,2,1 ,2,1,1,1,1,1,1,1,1,1]

x = range(11,31)

plt.figure(figsize=(10,5),dpi=80)

plt.plot(x,y_1,label="爱死早八",color="#F08080")
plt.plot(x,y_2,label="不爱早八",color="#DB7093",linestyle="--")

_xtick_labels = [f"{i}人" for i in x]
plt.xticks(x,_xtick_labels,fontproperties=new_font)
plt.yticks(range(0,9))

plt.grid(alpha=0.8,linestyle=':')

plt.legend(prop=new_font,loc="upper right")

plt.show()

  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值