gpt4 book ai didi

python - 将字符串数据传递给 matplotlib API 时会绘制什么?

转载 作者:行者123 更新时间:2023-12-05 09:04:19 26 4
gpt4 key购买 nike

# first, some imports:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

假设我想使用这些数据绘制散点图:

np.random.seed(42)
x=np.arange(0,50)
y=np.random.normal(loc=3000,scale=1,size=50)

绘图通过:

plt.scatter(x,y)

我得到这个答案:

enter image description here

好的,让我们先创建一个数据框:

df=pd.DataFrame.from_dict({'x':x,'y':y.astype(str)})

(我知道我将 y 存储为 str - 这是一个可重现的示例,我这样做是为了反射(reflect)真实的用例。)

然后,如果我这样做:

plt.scatter(df.x,df.y)

我得到:

enter image description here


我在第二个图中看到了什么?我认为第二个图必须显示 x 列与 y 列的对比, 转换为 float 。这显然不是这种情况。

最佳答案

Matplotlib 不会自动将 str 值转换为数值,因此您的 y 值被视为分类值。就 Matplotlib 而言,'1.0' 到 '0.9' 和 '1.0' 到 '100.0' 的差异没有区别。

因此,图上的 y 轴将与 range(len(y)) 相同(因为所有分类值之间的差异是相同的),并从分类值分配标签.

由于您的 x 是一个等于 range(50) 的范围,现在您的 y 也是一个范围(也等于 range(50)),它绘制 x = y,y 标签设置为相应的 str 值。

关于python - 将字符串数据传递给 matplotlib API 时会绘制什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68873370/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com