当前位置:   article > 正文

小白第二步 用python中的matplotlib绘制气温折线图_绘制气象平均气温随时间分布python

绘制气象平均气温随时间分布python

这次比上一次的更加进阶 添加了背景 图例标签等等等 更高级一丢丢
呜呜呜我真的查了好多资料
不得不说 matplotlib真是一个太太太强大的包了

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
sns.set(style="darkgrid")
#中文显示问题
from pylab import mpl
mpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = False

#设置折线图的大小
plt.figure(figsize=(13,12),dpi=80)

y_ty=[24,9,8,14,16]
y_xn=[20,13,9,12,13]
y_cs=[27,24,12,14,11]
y_nc=[26,23,21,13,11]
y_xa=[27,18,11,11,11]
y_hz=[26,27,13,10,10]
#设置折线图的标题
plt.title('气温“打折”哪家强?   by 小吕\n\n',alpha=0.6,fontstyle='oblique',fontweight='black',fontsize='30',color='blue',loc='center')
plt.text(2.2,29.3, '中国天气',verticalalignment='top',ha='center', va='top', fontsize=20,color='black')
plt.text(4.2,29.3, '单位:℃',verticalalignment='top',ha='center', va='top', fontsize=20,color='black')
plt.xlim(0,4.3)
plt.ylim(8,28)
#确定x轴刻度及格式
plt.xticks(range(5),('3月25日', '26日', '27日', '28日','29日'))
plt.tick_params(axis='x',width=2,colors='black',labelsize='16')
#确定y轴刻度
plt.yticks(np.arange(8,32,4))
plt.tick_params(axis='y',width=2,colors='black',labelsize='16')
#生成网格
plt.grid(axis="y",linestyle='-.')
#获取边框
ax=plt.gca()
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
#绘制折线图
plt.plot(y_ty,color='r',label='太原',marker='o',linewidth=3)
plt.plot(y_xn,color='purple',label='西宁',marker='o',linewidth=3)
plt.plot(y_cs,color='goldenrod',label='长沙',marker='o',linewidth=3)
plt.plot(y_nc,color='c',label='南昌',marker='o',linewidth=3)
plt.plot(y_xa,color='g',label='西安',marker='o',linewidth=3)
plt.plot(y_hz,color='b',label='杭州',marker='o',linewidth=3)
plt.legend(['太原','西宁','长沙','南昌','西安','杭州'],fontsize='15',loc='upper left',frameon=False,
          bbox_to_anchor=(0.15, -0.1),ncol=6)
#添加标注
plt.text(0,28, '27℃', ha='left', va='top', fontsize=16,color='goldenrod')
plt.text(0.2,28, '/27℃', ha='left', va='top', fontsize=16,color='g')
plt.text(2.1,8, '8℃', ha='left', va='top', fontsize=16,color='r')
plt.text(4.2,17.3, '太原', ha='left', va='top', fontsize=20,color='white',rotation=30, bbox=dict(boxstyle="round",lw=2,ec='red',fc='red'))
plt.text(4.2,14.2, '西宁', ha='left', va='top', fontsize=20,color='white',rotation=30,bbox=dict(boxstyle="round",lw=2,ec='purple',fc='purple'))
plt.text(4.2,12.8, '长沙', ha='left', va='top', fontsize=20,color='white',rotation=30, bbox=dict(boxstyle="round",lw=2,ec='goldenrod',fc='goldenrod'))
plt.text(4.2,11, '南昌', ha='left', va='top', fontsize=20,color='white', bbox=dict(boxstyle="round",lw=2,ec='c',fc='c'))
plt.text(4.2,10, '西安', ha='left', va='top', fontsize=20,color='white',rotation=-30, bbox=dict(boxstyle="round",lw=2,ec='g',fc='g'))
plt.text(4.1,8.8, '杭州', ha='left', va='top', fontsize=20,color='white',rotation=-30, bbox=dict(boxstyle="round",lw=2,ec='b',fc='b'))
plt.savefig('D:/温度.jpg')
plt.show()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58

`**

**`
最后效果图:
在这里插入图片描述
代码有具体的注释 如果有问题或者疑惑 欢迎滴滴我呀。

在画图过程中我比较偏爱的几个点
其实具体的包里面的函数 有好多技术大牛都在CSDN或者其他网站上写过 在学习画图的过程中我也查找并且收藏了一些资料 写的真的好好呜呜呜
1.plt.figure(figsize=(13,12),dpi=80)虽然看似很简单 但其实figure函数还是有点有趣滴
附上学习笔记:
figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)

num:图像编号或名称,数字为编号 ,字符串为名称
figsize:指定figure的宽和高,单位为英寸;
dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 (1英寸等于2.5cm,A4纸是 21*30cm的纸张 )
facecolor:背景颜色
edgecolor:边框颜色
frameon:是否显示边框

ps:
这个文章里面有更详细的介绍哇

下面继续想要学会的:subplot创建单个子图(我真的太太太想把背景改一改了 这次的我的背景是简单用的seaborn包里面的网格)seaborn包也是想要学习的东东 希望在下面的文章里面能够po出来哇
2.
#确定x轴刻度及格式
plt.xticks(range(5),(‘3月25日’, ‘26日’, ‘27日’, ‘28日’,‘29日’))

这个真的困扰了我好久好久好久好久
好趴 大家都是大牛
最后我这个白痴终于知道如何随心随欲的设置x轴的刻度啦 其实很简单

3.添加标注
添加标注真的太酷了 简直是灵魂画手的了
还可以添加箭头的哦(ps也是下一次文章想可以分享出来的,这次觉得 小吕太难了 就先不画啦)
类似代码
#添加标注
plt.text(0,28, ‘27℃’, ha=‘left’, va=‘top’, fontsize=16,color=‘goldenrod’)
plt.text(0.2,28, ‘/27℃’, ha=‘left’, va=‘top’, fontsize=16,color=‘g’)
plt.text(2.1,8, ‘8℃’, ha=‘left’, va=‘top’, fontsize=16,color=‘r’)
plt.text(4.2,17.3, ‘太原’, ha=‘left’, va=‘top’, fontsize=20,color=‘white’,rotation=30, bbox=dict(boxstyle=“round”,lw=2,ec=‘red’,fc=‘red’))

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/709874
推荐阅读
相关标签
  

闽ICP备14008679号