从包含类别的 csv 文件创建散点图
create a scatter plot from a csv file with categories
我刚刚进入 Python,我正在尝试生成包含多个类别的散点图。我正在使用 Iris 数据集作为基础,这是我目前所拥有的:
import matplotlib.pyplot as plt
import numpy as np
fig,ax = plt.subplots(1)
iris_data = np.genfromtxt(
"iris.csv", names=True,
dtype="float", delimiter=",")
x=iris_data["sepal_length"]
y=iris_data["sepal_width"]
g=iris_data["class"]
plt.scatter(x,y)
plt.show()
我不知道如何分离出 类 并将每个都绘制在同一张图上。
我来自 Matlab,我所需要的只是
"gscatter(x,y,g) creates a scatter plot of x and y, grouped by g" 完成工作,但我发现 python 需要更多才能完成 group by g 部分。
提前感谢您的帮助。
使用seaborn:
import seaborn as sns, matplotlib.pyplot as plt
iris = sns.load_dataset('iris')
sns.scatterplot(x='sepal_length',y='sepal_width',data=iris,hue='species')
plt.show()
结果:
只要您的数据组织在 pandas DataFrame 中,您就可以在 matplotlib 中执行与以下示例相同的操作:
for k,g in iris.groupby('species'):
plt.scatter(g['sepal_length'],g['sepal_width'],label=k)
我刚刚进入 Python,我正在尝试生成包含多个类别的散点图。我正在使用 Iris 数据集作为基础,这是我目前所拥有的:
import matplotlib.pyplot as plt
import numpy as np
fig,ax = plt.subplots(1)
iris_data = np.genfromtxt(
"iris.csv", names=True,
dtype="float", delimiter=",")
x=iris_data["sepal_length"]
y=iris_data["sepal_width"]
g=iris_data["class"]
plt.scatter(x,y)
plt.show()
我不知道如何分离出 类 并将每个都绘制在同一张图上。
我来自 Matlab,我所需要的只是 "gscatter(x,y,g) creates a scatter plot of x and y, grouped by g" 完成工作,但我发现 python 需要更多才能完成 group by g 部分。
提前感谢您的帮助。
使用seaborn:
import seaborn as sns, matplotlib.pyplot as plt
iris = sns.load_dataset('iris')
sns.scatterplot(x='sepal_length',y='sepal_width',data=iris,hue='species')
plt.show()
结果:
只要您的数据组织在 pandas DataFrame 中,您就可以在 matplotlib 中执行与以下示例相同的操作:
for k,g in iris.groupby('species'):
plt.scatter(g['sepal_length'],g['sepal_width'],label=k)