散点图绘制参数
1、先创造点数据
#x轴坐标(1->4))
x=[1,2,3,4]
#写个二维的表格
y=np.array([[1,2,1,3],[1,2,3,4],[1,2,3,5],[5,6,7,6],[5,5,7,7]])
打印后的y:
2.绘制y
for i in range(4):
print(i,y[:,i])#
plt.scatter([i+0.3]*len(y),y[:,i],c=[0,0.2,0.4,0.6,0.8],cmap=args.camp1,s=args.s1,alpha=0.5)
得到的打印结果:
前面的0,1,2,3表示y第0列到第3列的数据。[i+0.3]*len(y) 是图像的整体坐标往右移动0.3个单位(想让点在坐标轴的整数之间)
y[:,i]: 表示第i列所有数据。
c=[0,0.2,0.4,0.6,0.8],这个c可以是整数,如果c是数字1/2/3等,表示的意思是分这几个类别,比如:
(颜色相同但是深浅不同,因为设置了透明度 alpha=0.5,同一个位置的点会叠加。)
当为1或者2,3,4的时候都是一样的。
当c是用来区分不同类别的时候:
观察最后一列数据,这里指的是一共4列,每一列第一个数据是深蓝色(?),第二个数据是浅灰,第三个数据是红色,第四个数据,也就是c[3]和第一个数据c[0]一样,都是用数字1代表,所以也是深蓝色。
观察第一列,其实坐标(0,1)出现了三次,三个圈圈颜色不一样都在坐标(0,1)的位置,但是现在被最后出现的红色覆盖了。
当c为浮点数的时候,就会按照浮点数的大小显示cmap的颜色了。
这里我的args.camp1=‘coolwarm’
颜色可以在链接
https://blog.csdn.net/qq_38048756/article/details/118724555
颜色cmap
中找到。
这里的s=args.s1代表散点中散点的大小,我这里设置为100,这可能是和画布大小有关。
散点图框架代码
#绘制图像
fig, ax = plt.subplots(figsize=(10, 8))
#绘制第一组数据
for i in range(numpy1.shape[1]):
ax.scatter([i+0.2 for _ in range(len(numpy1))],numpy1[:,i],c=[0.8]*len(numpy1),alpha=args.alpha,cmap=args.camp1,s=args.s1,marker=args.marker)#alpha=1,
#绘制第二组数据
for i in range(numpy2.shape[1]): #原始数据
ax.scatter([i for _ in range(len(numpy2))],numpy2[:,i],c=[0.8]*len(numpy2),alpha=args.alpha,cmap=args.camp2,s=args.s2,marker=args.marker)#alpha=1,
#设置x轴的刻度(和下面的set_xticklabels得一起写)
ax.set_xticks(range(12))
ax.set_xticklabels(range(1, 13), fontsize=14)
#设置标签
ax.set_ylabel('Values',fontsize=args.label_fontsize) #设定纵轴标签
ax.set_xlabel('Features',fontsize=args.label_fontsize) #设定纵轴标签
#绘制为空的图像,主要目的是加上color-label,好写legend,因为前面的scatter是一行跑一次。。。
ax.plot([], [], 'o', color=args.color2, label=label2)#原始数据
ax.plot([], [], 'o', color=args.color1, label=label1)
ax.legend(fontsize=12)
plt.title(title, fontsize=18)
plt.savefig(title,bbox_inches='tight', dpi=450)