python散点条形图的绘制

python散点条形图的绘制


import numpy as np
import matplotlib.pyplot as plt

引用样式

plt.style.use('ggplot')

生成200个随机数据

x=np.random.randn(200)
y=x+np.random.randn(200)*0.5

设置坐标系的位置

margin_border=0.1
width=0.6
margin_between=0.02
height=0.2

left_s=margin_border
bottom_s=margin_border
height_s=width
width_s=width

left_x=margin_border
bottom_x=margin_border+width+margin_between
height_x=height
width_x=width

left_y=margin_between+margin_border+width
bottom_y=margin_border
height_y=width
width_y=height

生成rect对象

rect_s=[left_s,bottom_s,width_s,height_s]
rect_x=[left_x,bottom_x,width_x,height_x]
rect_y=[left_y,bottom_y,width_y,height_y]

画出坐标系

axScatter_s=plt.axes(rect_s)
axScatter_x=plt.axes(rect_x)
axScatter_y=plt.axes(rect_y)

上下两个坐标系的x,y坐标取消掉

axScatter_x.set_xticks([])
axScatter_y.set_yticks([])

画出主坐标的散点图

axScatter_s.scatter(x,y,color='b')

设置柱状图的柱子宽度

bin_width=0.25

取x,y的绝对值的最大值

xymax=np.max([np.max(np.fabs(x)),np.max(np.fabs(y))])

确定坐标的的宽度

lim=int(xymax/bin_width+1)*bin_width

设置xy坐标轴的最大最小坐标

axScatter_s.set_xlim(-lim,lim)
axScatter_s.set_ylim(-lim,lim)

生成柱状图的横坐标上的点

bins=np.arange(-lim,lim+bin_width,bin_width)

画出柱状图x

axScatter_x.hist(x,bins=bins)

画出柱状图y

axScatter_y.hist(y,bins=bins,orientation='horizontal')

设置x,y坐标的极限值

axScatter_x.set_xlim(axScatter_s.get_xlim())
axScatter_y.set_ylim(axScatter_s.get_ylim())

设置坐标的title,但是位置出现的地方需要调整

plt.title('scatter and hist')

显示出该图像

plt.show()

python散点条形图的绘制_第1张图片
figure_1.png

你可能感兴趣的:(python散点条形图的绘制)