我正在尝试为以下数据绘制散点图,所有列都在一个图中。
实际上,我从csv文件导入此数据并保存在dataframe df_inv
中,然后将其保存在变量提示中
tips = df_inv
sns.scatterplot(data=tips, x=df_inv.index, y = "a")
plt.show()
我想在同一图上添加列B、c和d,但我无法找到正确的代码。我试过y = ["a", "b", "c", "d", "e"]
,但它没有工作。我希望我的结果在以下格式理想的不是所有的圆,但一些x,*,和其他形状。
3条答案
按热度按时间wn9m85ua1#
另一种解决方案,如果你不想重塑数据框,将调用sns.scatterplot几次,每次与一个不同的列,你想在y参数绘图。然后,每一列都将绘制在第一次调用将生成的相同轴上。您可以创建要在每次调用时使用的颜色和标记列表,也可以手动创建图例。下面是示例代码,使用df_inv数据框中的所有列(带有一些随机生成的数据)。
代码结果:
5q4ezhmt2#
您可以使用
pandas.melt
在不同的 Dataframe 中重新塑造数据:通过这种方式,您将得到类似于:
现在你终于可以用一行代码来绘图了:
完整代码
e5njpo683#
sns.scatterplot
接受宽格式或长格式的数据。pandas.DataFrame
、numpy.ndarray
、Map或序列。输入数据结构。可以是可分配给命名变量的长格式向量集合,也可以是将在内部整形的宽格式数据集。data=df[['a', 'b', 'c', 'd']]
或data=df
,分别用于选定列或所有列。*在
python 3.11.2
、pandas 2.0.1
、matplotlib 3.7.1
、seaborn 0.12.2
中测试df