用matplotlib画带有误差棒的三维数据散点图(第三维连续变量属性用节点颜色和大小表示)——python

我想绘制一个带有误差棒的散点图,同时数据的第三个属性能用散点大小和颜色表示,我查了很多资料发现如果单独用errorbar来绘制图,其点的大小和颜色很难根据数据而改变,尤其是很难达到一个渐变的效果,因此我想到了把 散点图误差棒图结合为一张图

最后我得到的图如下:

用matplotlib画带有误差棒的三维数据散点图(第三维连续变量属性用节点颜色和大小表示)——python

先分别介绍一下两个函数的参数

1. scatter函数(散点图)

x,y,z分别代表数据的三个属性,其中x,y分别表示为横纵坐标,z用散点的颜色和大小表示。

matplotlib中散点图函数scatter介绍

用matplotlib画带有误差棒的三维数据散点图(第三维连续变量属性用节点颜色和大小表示)——python注:该图转来自 Python中scatter函数参数详解_AnneQiQi的博客-CSDN博客_scatter函数

2. errorbar函数(误差棒图)

plt.errorbar(x,y,yerr=None, xerr=None,alpha=1,ecolor =’black’,elinewidth=2,capsize=5,capthick=1,linestyle=”none”)
主要参数说明:

x,y: 数据点的位置坐标

xerr,yerr: 数据的误差范围(在我的图中为y的标准差值)

alpha:误差棒的透明度

ecolor: 误差棒的线条颜色

elinewidth: 误差棒的线条粗细

capsize: 误差棒边界横杠的大小

capthick: 误差棒边界横杠的厚度

linestyle:点之间的连线风格(可以表示为{‘-‘, ‘–‘, ‘-.’, ‘:’, ”, (offset, on-off-seq), …})

更多参数可以参考errorbar官方文档:matplotlib.pyplot.errorbar — Matplotlib 3.5.0 documentation

我的代码如下:

import matplotlib.pylab as plt
import numpy as np
import pandas

x = list(A_groups.index)   #数据A是我用分类汇总得到的一个dataframe
y = list(A_groups['senti'])
z = list(A_groups['count'])
z_size = [x/40 for x in z]   #可以通过对列表进行除法改变节点大小

plt.scatter(x, y, c=z, s =z_size,alpha = 0.8,marker='s',cmap='viridis_r')
plt.colorbar()   #在右侧显示颜色条
plt.errorbar(x,y,yerr = y_sd,elinewidth=2,alpha=1,ecolor = 'black',capsize=5,capthick=1,linestyle="none")

Original: https://blog.csdn.net/weixin_41168304/article/details/121715614
Author: 阿丢是丢心心
Title: 用matplotlib画带有误差棒的三维数据散点图(第三维连续变量属性用节点颜色和大小表示)——python

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/765493/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球