python实战学习之matplotlib绘图
matplotlib 是最流行的Python底层绘图库,主要做数据可视化图表 可以将数据可视化,能够更直观的呈现数据
matplotlib绘图基本要点
首先实现一个简单的绘图
# 导入pyplot
from matplotlib import pyplot as plt
x = range(1,13)
y = [15,13,14.5,17,20,25,26,26,27,22,18,15]
# 传入x和y,通过plot绘制折现
plt.plot(x,y)
# 展示绘图
plt.show()

更多属性设置
- 设置图片大小
fig = plt.figure(figsize=(20,8),dpi=80)
通过实例化一个figure并且传递参数,能够在后台自动使用该figure
在图像模糊的时候可以传入dpi参数,让图片更加清晰
- 保存到本地
plt.savefig(path) #path 图片的保存路径
- 中文设置
my_font = font_manager.FontProperties(fname=r"c:\windows\fonts\simsun.ttc")
matplotlib默认不支持中文字符,因为默认的英文字体无法显示汉字
设置中文字体(指定具体的字体文件路径,然后再需要显示中文的地方添加fontproperties参数)
- x轴,y轴,图表的描述信息
plt.xlabel("时间",fontproperties=my_font)
plt.ylabel("温度",fontproperties=my_font)
plt.title("一天的温度的变化",fontproperties=my_font)
- 调整x或者y的刻度的间距
plt.xticks(x) #刻度设置 传入的是列表x的数据
plt.xticks(x[::2]) #调整刻度 每间隔两个输出一个
x_ticks = ["第{}个".format(i) for i in x]
让列表X中的数据和x_ticks上的数据都传入,最终会在x轴上一一对应显示出来 两组数据的长度必须一样
plt.xticks(x[::5],x_ticks[::5],rotation=45,fontproperties=my_font)
为了不让字符串重叠覆盖,使用rotation进行旋转rotation=45
- 线条的样式(比如颜色,透明度等)
plt.plot(x,label = "数据",linestyle="-",color="red",alpha=0.5)
linestyle 设置线条的样式
linewidth 设置线条的粗细
color设置线条的颜色
alpha = 0.5 设置线条的透明度
plt.legend(prop=my_font,loc="best")#通过plot函数的label设置图例
prop 设置图例的字体
loc 设置图例的位置 默认为右上角
- 添加网格
plt.grid()
- 标记出特殊的点(比如最高点和最低点)
获取最大值最小值的索引
max_indx=y.index(max(y))
设置最大值
plt.plot(x[max_indx],y[max_indx],'ks')
显示最大值
show_max='['+str(x[max_indx])+','+str(y[max_indx])+']'
plt.annotate(show_max,xytext=(x[max_indx],y[max_indx]),xy=(x[max_indx],y[max_indx]))
- 给图片添加一个水印(防伪,防止盗用)
添加水印
fig.text(0.75, 0.45, 'hello world',
fontsize=40, color='gray',
ha='right', va='bottom', alpha=0.4)
折线图实例
from matplotlib import pyplot as plt
# import random
from matplotlib import font_manager
#matplotlib默认不支持中文字符,因为默认的英文字体无法显示汉字
#设置中文字体(指定具体的字体文件路径,然后再需要显示中文的地方添加fontproperties参数)
my_font = font_manager.FontProperties(fname=r"c:\\windows\\fonts\\simsun.ttc")
#figure图形图标的意思在这里指的就是我们画的图
#通过实例化一个figure并且传递参数,能够在后台自动使用该figure实例
#在图像模糊的时候可以传入dpi参数,让图片更加清晰
fig = plt.figure(figsize=(15,6),dpi=80)
#数据在x轴的一个位置,是一个可迭代对象
x = range(2,26,2)
#数据在y轴的一个位置
y = [15,13,14.5,17,20,25,26,26,27,22,18,15]
# 获取最大值最小值的索引
max_indx=y.index(max(y))
min_indx=y.index(min(y))
#传入x和y,通过plot绘制折线图
#设置线条样式,颜色,透明度
plt.plot(x,y,label = "温度",linestyle="-.",color="red",alpha=0.5)
#通过plot函数的label设置图例
plt.legend(prop=my_font,loc="best")
# 设置最大值
plt.plot(x[max_indx],y[max_indx],'ks')
# 显示最大值
show_max='['+str(x[max_indx])+','+str(y[max_indx])+']'
plt.annotate(show_max,xytext=(x[max_indx],y[max_indx]),xy=(x[max_indx],y[max_indx]))
# 设置最小值
plt.plot(x[min_indx],y[min_indx],'gs')
# 显示最小值
show_min='['+str(x[min_indx])+','+str(y[min_indx])+']'
plt.annotate(show_min,xytext=(x[min_indx],y[min_indx]),xy=(x[min_indx],y[min_indx]))
# 设置水印
fig.text(0.75, 0.45, 'hello world',
fontsize=40, color='gray',
ha='right', va='bottom', alpha=0.4)
# 设置x轴的刻度
x_ticks = ["X日{}点".format(i) for i in x]
plt.xticks(x,x_ticks,rotation=45,fontproperties=my_font)
# 设置x轴,y轴的标注,标题
plt.xlabel("时间",fontproperties=my_font)
plt.ylabel("温度",fontproperties=my_font)
plt.title("一天的温度的变化",fontproperties=my_font)
# 设置网格
plt.grid()
plt.show()
如下图所示

python实战学习之matplotlib绘图的更多相关文章
- python实战学习之matplotlib绘图续
学习完matplotlib绘图可以设置的属性,还需要学习一下除了折线图以外其他类型的图如直方图,条形图,散点图等,matplotlib还支持更多的图,具体细节可以参考官方文档:https://matp ...
- [置顶] 如何在Windows 7 64位安装Python,并使用Matplotlib绘图
1. 安装Python 我使用的是Windows 7 64 bit,所以我从Python官网下载python-2.7.5.amd64.msi,安装步骤如下: 1) 安装windo ...
- 利用python深度学习算法来绘图
可以画画啊!可以画画啊!可以画画啊! 对,有趣的事情需要讲三遍. 事情是这样的,通过python的深度学习算法包去训练计算机模仿世界名画的风格,然后应用到另一幅画中,不多说直接上图! 这个是世界名画& ...
- python数据分析三剑客之: matplotlib绘图模块
matplotlib 一.Matplotlib基础知识 Matplotlib中的基本图表包括的元素 - x轴和y轴 axis 水平和垂直的轴线 - x轴和y轴刻度 tick 刻度标示坐标轴的分隔,包括 ...
- python实战学习之numpy学习
numpy基础要点 1.生成数组 np.array([]) 2.变量的类型 numpy.ndarray 3.数据的类型 int8,float64,float32,bool等 4.数据的类型转换 x.a ...
- 【python笔记】使用matplotlib,pylab进行python绘图
一提到python绘图,matplotlib是不得不提的python最著名的绘图库,它里面包含了类似matlab的一整套绘图的API.因此,作为想要学习python绘图的童鞋们就得在自己的python ...
- python数据分析使用matplotlib绘图
matplotlib绘图 关注公众号"轻松学编程"了解更多. Series和DataFrame都有一个用于生成各类图表的plot方法.默认情况下,它们所生成的是线形图 %matpl ...
- python 中matplotlib 绘图
python 中matplotlib 绘图 数学建模需要,对于绘图进行简单学习 matpoltlib之类的包安装建议之间用anaconda 绘制一条y=x^2的曲线 #比如我们要绘制一条y=x^2的曲 ...
- Python实战:Python爬虫学习教程,获取电影排行榜
Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知识总结.希望大家能够快速入门并学习 ...
随机推荐
- JavaScript基础视频教程总结(061-070章)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- C++ Thrift服务端记录调用者IP和被调接口方法
Apache开源的Thrift(http://thrift.apache.org)有着广泛的使用,有时候需要知道谁调用了指定的函数,比如在下线一起老的接口之前,需要确保对这些老接口的访问已全部迁移到新 ...
- LoRa与NB-IoT对比(转载)
物联网的基本架构包括三个层面:感知层.网络层和应用层. 物联网架构图 感知层通过传感器采集某些数据(声.光.电等),基于网络层的终端模组,对接到网络层的基站,实现数据采集后的传输. 网络层负责将感知层 ...
- Runtime "Apache Tomcat v6.0 (3)" is invalid. The JRE could not be found. Edit the server and change the JRE location解决方案
使用eclipse,启动Tomcat时出现The JRE could not be found ,Edit server and change teh JRE location的错误提示! 原因:重装 ...
- Spark机器学习解析下集
上次我们讲过<Spark机器学习(上)>,本文是Spark机器学习的下部分,请点击回顾上部分,再更好地理解本文. 1.机器学习的常见算法 常见的机器学习算法有:l 构造条件概率:回归分 ...
- ProgressDialog修改TextView的TextSize
ProgressDialog修改TextView的TextSize 问题描述 今天UI过来找我说是加载条的字号太小了,不好看,希望可以改一下,然后我就研究一下如何修改ProgressDialog里面T ...
- PHP调用百度天气接口API
//百度天气接口API $location = "北京"; //地区 $ak = "5slgyqGDENN7Sy7pw29IUvrZ"; //秘钥,需要申请,百 ...
- Eclipse 中 Spring 项目的 XML 配置文件报错 Referenced file contains errors
原来运行正常的项目,突然在applicationContext.xml 文件头报错 总结一下网上的解决方案: 1.有可能网络状况不好导致 如果使用Maven构建项目,spring在加载xsd文件时总是 ...
- 《http权威指南》读书笔记12
概述 最近对http很感兴趣,于是开始看<http权威指南>.别人都说这本书有点老了,而且内容太多.我个人觉得这本书写的太好了,非常长知识,让你知道关于http的很多概念,不仅告诉你怎么做 ...
- SVG之颜色、渐变和笔刷的使用
一.颜色 我们之前使用英文来表示颜色并进行填充,比如: <circle cx="800" cy="120" r="110" strok ...