以鸢尾花数据为例,python代码如何利用plot画散点图?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
本文以上一篇文章中获得鸢尾花数据集的每列数据为基础,分离出每列数据后,将利用这些数据基于python
的plot
画散点图出来。通过鸢尾花数据间的不同对比,试图找出一些数据间的规律。
大家好,这里是苏南大叔的程序如此灵动博客,记录苏南大叔的程序所学所想。本文测试环境:win10
,python@3.11.0
,pandas@1.5.3
,numpy@1.24.2
,matplotlib@3.7.1
。本文的散点图仅仅是个最简单的例子,后续将继续进行完善。
获得每列数据
这里对获取数据,分离每列数据的代码快速带过,具体的解释,可以参考:
import pandas as pd
import numpy as np
data_url = "http://download.tensorflow.org/data/iris_training.csv"
# data_url = "iris.csv"
column_names = ["萼长", "萼宽", "瓣长", "瓣宽", "种类"]
df_iris = pd.read_csv(data_url, header=0, names=column_names)
column_0 = np.array(df_iris["萼长"])
column_1 = np.array(df_iris["萼宽"])
column_2 = np.array(df_iris["瓣长"])
column_3 = np.array(df_iris["瓣宽"])
column_4 = np.array(df_iris["种类"])
散点图数据来源和结论
分析的目的是对某两项表现项目进行分析,目前一共有四个项目维度(前四列数据)可以分析,分别是:
中文 | 英文 |
---|---|
花萼长度 | Sepal Length |
花萼宽度 | Sepal Width |
花瓣长度 | Petal Length |
花瓣宽度 | Petal Width |
得出的结论是:
第五列数据鸢尾花种类(Iris Species
),分别是:山鸢尾、变色鸢尾和维吉尼亚鸢尾,'setosa'、'versicolor' 和 'virginica'。
画散点图【以前两列为坐标】
这里是以前两列数据(萼长/萼宽)为横纵坐标,画散点图的。(前四列数据任意两列组合,都可以画散点图)
data_x = column_0 # 换成其它列数据也行
data_y = column_1 # 换成其它列数据也行
data_z = column_4
data_z
就是鸢尾花分类的ndarray
一维数组,它里面一共有0/1/2
三种取值,分别对应于cmap
中的blue/red/green
颜色设置,按照顺序一一对应。
import matplotlib.pyplot as plt
fig = plt.figure("iris data", figsize=(15, 15))
plt.title("Sepal Length * Sepal Width Graph")
plt.suptitle("the graph suptitle\nblue:setosa,red:versicolor,green:virginica")
plt.xlabel("Sepal Length")
plt.ylabel("Sepal Width")
# plt.scatter(data_x, data_y)
q1 = plt.scatter(data_x, data_y, c=data_z, cmap="brg")
plt.show()
最终展示的这个图,并不是个通常意义上的图片,而是一个动态的组件程序,里面的各个子组件之间是可以根据实际情况进行动态调整的。那么,如何获得图片呢?除了点击这套程序界面下方的保存为图片的按钮外,还可以通过代码来获得一张截图,这个留作后文的伏笔。
这些参数都比较好理解,值得特别说明的是:
- 画布尺寸参数
figsize
的单位是英寸。 scatter()
的c
和cmap
,控制了散点的颜色。brg
的意思就是blue/red/green
。不传这两个参数的话,就统一显示默认的蓝色圆点。c
参数会影响后续的legend()
图例的显示功能。
相关链接
- https://newsn.net/say/pandas-dataframe.html
- https://newsn.net/say/pandas-dataframe-copy.html
- https://newsn.net/say/pandas-series-map.html
结束语
本文中仅仅画了一个最简单的散点图,横坐标是花萼的长度,纵坐标是花萼的宽度,使用了默认圆点的不同颜色来区分不同的鸢尾花种类。在后续的文章里面,将对这个散点图不断进行调整。
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。