Matplotlib (MATLAB_Python) 数据处理
Matplotlib基本要点
可以画的图像(https://matplotlib.org/stable/gallery/index)
使用流程:
- 明确问题
- 选择图形的呈现方式
- 准备数据
- 绘图和图形完善
绘制例子(交互):
- 百度Echarts
- plotly:可视化工具中的github,同时兼容matplotlib和pands https://plot.ly/python/
1. 绘制折线图
-
设置图片大小
-
保存到本地
-
调整间距
# 使用as可以让调用函数的时候更简单 from matplotlib import pyplot as plt """ figure:指我们画的图(设置图片大小 dpi: 让图片更加清晰(清晰程度) """ fig = plt.figure(figsize=(20,8), dpi=80) # 数据在x轴的位置,是一个可迭代对象 x = range(2, 26, 2) # 数据在y轴的位置, 是一个可迭代对象 y = [15, 13, 14.5, 17, 20, 25, 26, 26, 24, 22, 18, 15] # 通过传入x和y,通过plot绘制出折线图 plt.plot(x, y) # 在执行程序的时候展示图形 """ 设置x轴的刻度(y轴是一样的:yticks):y轴range(min(y), max(y)+1) 可以使用range函数改变步长 如果有步长为小数,可以使用列表推导式 可以用列表取步长的操作[start:stop:step]改变步长 如果不想让他显示x轴刻度,不传就可以了 """ _xtick_labels = [i/2 for i in range(2, 49)] plt.xticks(_xtick_labels[::3]) """ 保存图片(先生成图片后保存) 可以保存为.swg这种矢量图格式,放大不会有锯齿 括号内是保存图片的名称 """ plt.savefig("./t1.png") plt.show()
-
描述信息
-
标记出特殊的点
-
添加水印
import random from matplotlib import pyplot as plt import matplotlib from matplotlib import font_manager """ 如何设置中文,import matplotlib 使用matplotlib.rc + (Command + B)去到源码,改font就可以 option + Command + L 快速调整格式 """ # 这种方式Mac无效,Linux和windows可以 # font = {'family': 'MicroSoft Yahei', # 'weight': 'bold', # 'size': 'larger'} # matplotlib.rc("font", **font) # matplotlib.rc("font", family='MicroSoft Yahei', weight='bold', size='larger') # Mac设置中文的方法, 使用fc-list :lang=zh找到地址 # from matplotlib import font_manager # fname是地址 my_font = font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc") x = range(0, 120) y = [random.randint(20, 35) for i in range(120)] fig = plt.figure(figsize=(20, 8), dpi=80) # 调整x轴的刻度,显示小时:分钟 _x = list(x) _xtick_labels = ["10:{}".format(i) for i in range(60)] _xtick_labels += ["11:{}".format(i) for i in range(60)] # 调整坐标轴刻度的两个参数的步长需要一一对应,格式也要 # rotation是旋转的度数(逆时针转) # 需要解决中文为什么不显示的问题 plt.xticks(_x[::6], _xtick_labels[::6], rotation=45, fontproperties=my_font) # 添加描述信息 plt.xlabel("时间", fontproperties=my_font) plt.ylabel("温度", fontproperties=my_font, rotation=90) plt.title("10点到12点每分钟的气温变化情况", fontproperties=my_font) """ 绘制网格 alpha透明度 """ plt.grid(alpha=0.05) # 添加水印的第一种方式 plt.text(0.5, 0.5, 'Watermark', fontsize=40, color='gray', alpha=0.5, ha='center', va='center', rotation=30, transform=plt.gcf().transFigure) # 添加水印的第二种方式 # 需要忽略前面的fig = plt.figure(...) # fig, ax = plt.subplots(figsize=(20, 8), dpi=80) # ax.plot(x, y) # ax.text(0.5, 0.5, 'Watermark', fontsize=40, color='gray', alpha=0.5, ha='center', va='center', rotation=30, # transform=ax.transAxes) # 设置图像颜色和线条样式 plt.plot(x, y, label="练习", color="cyan", linestyle="-.") # 标记特殊点 # 在特殊点标记红色圆圈 special_points_x = [2, 4] special_points_y = [20, 30] plt.scatter(special_points_x, special_points_y, color=