Python数据展示笔记之pyplot

文章目录

  • 前言
  • 基本使用
  • 图表绘制
  • 区域划分
  • 图表完善
  • 面向对象
  • 总结


前言

记录pyplot的基本功能和使用方法


基本使用

Matplotlib:数据可视化;pyplot:快捷方式

import matplotlib.pyplot as plt #引用
plt.show() #显示
plt.savefig(fname, dpi) #默认png格式,dpi输出质量
plt.close() #关闭

图表绘制

1.折线图:

plt.plot(x, y, format_string, **kwargs)
#x,y数据;format_string格式字符串;**kwargs:额外数据x, y, format_string
#只有1组数据时,索引为横坐标。多条曲线x不能省略。
#markersize标记尺寸;color线条颜色;markerfacecolor标记颜色

format_string格式字符串:颜色+风格+标记
颜色:‘r’,‘g’,‘b’,不指定时自动区分
风格:‘-‘实线,’–‘破折,’-.‘点划,’:‘虚线,’ ’ ’ ‘无(默认)
标记:’.‘点(默认),’,‘像素,‘o’实心,‘v’、’^’、’>‘、’<'三角
2.散点图:

plt.scatter(x, y, c, marker)
#x,y数据;c颜色;marker标记

3.扇形图:

plt.pie(sizes, explode, labels, autopct, shadow, startangle)
#sizes数据, explode突出, labels标签:列表/元组形式
#autopct百分数方式, shadow阴影, startangle起始角度
plt.axis('equal')#正圆

4.柱状图:

plt.hist(a, bin, normes, histtype, facecolor, alpha)
#a数据, bin柱数, normes为1概率;为0数目, histtype类型, facecolor颜色, alpha比例

区域划分

1.简单划分

plt.subplot(nrows, ncols, plot_number)
#nrows行数, ncols列数, plot_number当前位置(编号从1开始)
plt.tight_layout()#自动调整间距

2.延伸划分

plt.subplot2grid(Gridspec, Curspec, colspan=1, rowspan=1)
#Gridspec行列数, Curspec选中位置(编号从0开始), colspan列延伸, rowspan行延伸

3.类划分

 from matplotlib import gridspec 
 gs = gridspec.Gridspec(nrows, ncols)#区域划分
 axl = plt.subplot(gs[ : , : ])#区域切片

图表完善

1.文本显示

plt.xlabel(string)#坐标轴文本
plt.ylabel(string)
plt.title(string)#标题
plt.text(x, y, string, fontsize, transform)#文本
#x, y位置, string内容, fontsize字号
#transform为ax.transData绝对坐标;为ax.transAxes相对位置
plt.legend(label, loc, fontsize, frameon)#图例
#label标签列表, fontsize字号, frameon阴影
#loc位置,'best', {'upper',lower','center'}+{'left','right','center'}
plt.annotata(s, xy, xytext, arrowprops)#带箭头注解
#s文本, xy箭头位置, xytext文本位置
#arrowprops属性字典{facecolor:颜色,shrink:箭头缩进,width:箭头宽度}

2.中文显示
(1)全局字体

import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei'
#font.family字体;font.style风格;font.size大小

(2)局部字体

plt.xlabel(text, fontproperties='SimHei', fontsize=20)

特殊符号用Latex表示
3.坐标轴设置

plt.axis([x_low,x_high,y_low,y_high])#坐标轴范围
plt.xscale('log')#对数坐标
plt.rcParams['xtick.direction'] = 'in'#刻度线向内

面向对象

#fig,axes = plt.subplots()
#为空时111
fig = plt.figure(figsize)#图标
#figsize尺寸
ax = fig.add_subplot(nrows, ncols, plot_number)#区域
#为空时111
ax.plot()
ax.set_xlabel()
ax.legend()
ax.text()
plt.close(fig)

总结

涉及区域划分时,推荐使用面向对象方法,图表放在循环外,在循环内建立区域并绘图,注意绘图和坐标轴设置的顺序。

你可能感兴趣的:(Python数据展示,python)