Python 数据加工 之 Matplotlib

Python 数据加工 之 Matplotlib

—b站 python数据分析(黑马程序员)

第一步画图

如果没有安装matplotlib的同学可以在cmd命令行中使用下面的命令安装

pip install matplotlib-i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

一、下面是第一个案例,绘制一天中温度随时间(每隔2小时)所产生的变化

关于解决显示中文的问题

plt.rcParams['font.sans-serif'] = [u'SimHei']
plt.rcParams['axes.unicode_minus'] = False
  • 第一步,绘制出最简单的图形
from matplotlib import pyplot as plt

x = range(2, 26, 2)
y = [15, 13, 14.5, 17, 20, 25, 26, 26, 24, 22, 18, 15]
# 绘图
plt.plot(x, y)
# 展示图形
plt.show()

效果如下
在这里插入图片描述
这张图仅仅简单的表示出了一条折线,但我们并不知道他代表的含义,下面进行一步步的优化

  • 设置大小
# 设置图片大小
#figsize 宽高
#dpi 像素
plt.figure(figsize=(20, 8), dpi=80)
  • 保存图片
# 保存
plt.savefig("./t1.png") #在当前路径下保存为png
  • 设置x轴的刻度
'设置x轴的刻度'
#普通方法
plt.xticks(x)
# 使得x轴刻度更密集
xTick = [i / 2 for i in range(4, 49)]
plt.plot(xTick)
# 使得x轴刻度更稀疏
plt.plot(xTick[::3])
#显示为字符串
_x = list(x)[::10]
_xtick_labels = ['hello,{}'.format(i) for i in _x]
plt.xticks(_x, _xtick_labels)  # 需要和x一一对应才可以传入字符串
  • 设置y轴
# 设置y轴的刻度
plt.yticks(range(min(y), max(y) + 1))
  • 描述信息
#添加描述信息
plt.xlabel('时间')
plt.ylabel('温度 单位/℃')
plt.title('10点到12点每分钟的气温变化情况')

所有代码和效果如下

# 如果列表a表示10点到12点的每一分钟的气温,如何绘制折线图观察每分钟气温的变化情况
# a = [random.randint(20,35) for i in range(120)]


# 解答
# 分析:由已知,a为所给的温度,及纵坐标,横坐标为10点到12点的每分钟,共120个单位长度
import random
from matplotlib import pyplot as plt

plt.rcParams['font.sans-serif'] = [u'SimHei']
plt.rcParams['axes.unicode_minus'] = False

y = [random.randint(20, 35) for i in range(120)]
x = range(120)
plt.figure(figsize=(20, 8), dpi=80)

plt.plot(x, y)

# 调整x轴的刻度,显示为字符串
_xtick_labels = ['10点{}分'.format(i) for i in range(60)]
_xtick_labels += ['11点{}分'.format(i) for i in range(60)]
# 取步长,数字和字符串一一对应,数据的长度一样 ,rotation旋转90度
plt.xticks(list(x)[::3], _xtick_labels[::3], rotation=45)  # 需要和x一一对应才可以传入字符串

#添加描述信息
plt.xlabel('时间')
plt.ylabel('温度 单位/℃')
plt.title('10点到12点每分钟的气温变化情况')
plt.show()

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

		http://matplotlib.org/gallery/index.html

在这里插入图片描述

https://plot.ly/python/
发布了47 篇原创文章 · 获赞 2 · 访问量 1026

猜你喜欢

转载自blog.csdn.net/Weary_PJ/article/details/104053869