赞
踩
这次比上一次的更加进阶 添加了背景 图例标签等等等 更高级一丢丢
呜呜呜我真的查了好多资料
不得不说 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()
`**
**`
最后效果图:
代码有具体的注释 如果有问题或者疑惑 欢迎滴滴我呀。
在画图过程中我比较偏爱的几个点
其实具体的包里面的函数 有好多技术大牛都在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’))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。