matplotlib之直方图、饼图、散点图

一、直方图plt.hist()

调用matplotlib.pyplot.hist()方法来创建,关键字参数如下:

  • bins:可以是一个bin数量的整数值,也可以是表示bin的一个序列,默认是10
  • range:bin的范围,当bins参数为序列时,此参数无效,范围外的值将被忽略,默认值为None
  • normed:如果值为True,直方图的值将进行归一化处理,形成概率密度,默认为False
  • histtype:默认为bar类型的直方图
    • barstacked:用于多种数据的堆叠直方图
    • step:创建未填充的线性图
    • stepfilled:创建默认填充的线形图
  • align:用于bin边界之间矩形条的居中设置。默认为mid,可选right,left
  • color:指定直方图的颜色,可以是单一颜色值或颜色的序列,如果指定了多个数据集合,颜色序列将会设置为相同的顺序,如果未指定,将会使用一个默认的线条颜色
  • orientation:通过设置该参数为horizontal创建水平直方图,默认值为vertical
x = np.random.normal(100, 15, 1000)
ax = plt.gca()
ax.hist(x, bins=30, color='r')
ax.set_xlabel('Values')
ax.set_ylabel('Frequency')
plt.show()

二、饼图plt.pie()

调用plt.pie()方法绘制分裂式饼图(exploder pie chart),关键字exploded,其中每一个元素表示每个圆弧间的偏移量,具体为半径的百分比;startangle默认为0,扇区将从x轴(角度0)开始逆时针排列,如果指定为90,则从y轴开始。

ax = plt.axes([0.1, 0.1, 0.8, 0.8])
labels = ['Spring', 'Summer', 'Autumn', 'Winter']
x = [12, 30, 45, 10]
explode = (0.2, 0.05, 0.05, 0.05)
plt.pie(x, explode=explode, labels=labels, autopct='%1.1f%%', startangle=30)
plt.title('Rainy days by season')
plt.show()

三、散点图plt.scatter()

x = np.random.randn(1000)
y1 = np.random.randn(1000)
y2 = 1.2 + np.exp(x)
ax1 = plt.subplot(121)
plt.scatter(x, y1, color='indigo', alpha=0.3, label='no correl')
plt.xlabel('no corrlation')
plt.grid(True)	plt.legend()
ax2 = plt.subplot(122, sharey=ax1, sharex=ax1)
plt.scatter(x, y2, color='green', alpha=0.3, label='correl')
plt.xlabel('strong corrlation')
plt.grid(True)
plt.legend()
plt.show()

四、绘制火柴杆图

调用matplotlib.stem会返回3个对象,第一个是markerline,它是一个Line2D的实例,保存了表示火柴杆本身的线条的引用。它仅仅渲染了标记,不包括连接标记的线条,可以通过编辑该Line2D实例的属性让线条可见;第二个对象是stemlines,表示茎线的Line2D实例的集合(list对象);第三个对象是baselines,保存了表示stemlines原点的水平线条的引用。

x = np.linspace(-np.pi, np.pi, 50)
y = np.sin(x)
markerline, stemlines, baseline = plt.stem(x, y, bottom=0, label='delta')
plt.setp(markerline, color='red', marker='o')
plt.setp(stemlines, color='blue', linestyle=':')
plt.setp(baseline, color='grey', linewidth=2, linestyle='-')
plt.legend()
plt.show()

五、向表中添加数据表

使用plt.table()方式创建一个带单元格的表格,并把它添加到当前坐标轴中。函数实例化并返回一个matplotlib.table.Table实例

y = np.random.randn(9)
plt.figure()
col_labels = ['col1', 'col2', 'col3']
row_labels = ['row1', 'row2', 'row3']
table_vals = [[1,2,3], [4,5,6], [7,8,9]]
row_colors = ['red', 'gold', 'green']
my_table = plt.table(cellText=table_vals, colWidths=[0.1, 0.1, 0.1], rowLabels=row_labels, colLabels=col_labels, rowColours=row_colors, loc='upper right')
plt.plot(y)
plt.show()

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值