Python 之 Matplotlib 散点图、箱线图和词云图
说到Python的数据可视化,Matplotlib可真是个老练的"绘图高手"!今天咱们就来聊聊它的三件"法宝":散点图、箱线图和词云图。
首先,散点图就像是数据世界的"关系图",它能让你一眼看出变量之间的"感情线"。比如,身高和体重之间是"正相关"还是"负相关"?散点图会用"点点星光"告诉你答案!用scatter()函数,你可以轻松绘制散点图,关键参数有x、y坐标,还有c(颜色)、s(大小)和alpha(透明度)。就像这样:
`python
x = np.array([1,2,3,4,5,6,7,8])
y = np.array([1,4,9,16,7,11,23,18])
plt.scatter(x, y, c='red', s=100, alpha=0.5)
`
是不是很简单?而且还可以用不同的颜色条(cmap)让散点更绚丽多彩!比如coolwarm、viridis这些,都能让你的图表更有"温度"。
再说说箱线图,它是数据分布的"浓缩版",用五个数概括数据的全貌:最小值、第一四分位数、中位数、第三四分位数和最大值。用boxplot()函数一秒钟就能画出来。比如:
`python
data = [np.random.normal(size=100) for _ in range(4)]
plt.boxplot(data)
`
这下数据的"骨架"和"肥瘦"全都暴露无遗了!
最后是词云图,它是文字的"画家",用WordCloud把文字变成漂亮的云朵。要想让它支持中文,还需要jieba这个"庖丁"帮忙分词。比如:
`python
from wordcloud import WordCloud
import jieba
text = "人生苦短,我用Python"
wordcloud = WordCloud(width=800, height=400, background_color='white').generate(' '.join(jieba.cut(text)))
plt.imshow(wordcloud)
`
这样你的文字就能"飘起来"了,是不是很酷?
总之,Matplotlib就像一个"可视化工具箱",让你的数据"活起来"!记住,数据可视化不仅是展示,更是发现和思考的过程。下次当你面对一堆数据时,不妨试试这些图表,看看它们能给你带来什么灵感!
文章目录
- 一、散点图
-
- 1. scatter() 函数
- 2. 设置图标大小
- 3. 自定义点的颜色和透明度
- 4. 可以选择不同的颜色条,配合 cmap 参数
- 5. cmap 的分类
-
- 5.1 Sequential colormaps:连续化色图
- 5.2 Diverging colormaps:两端发散的色图 .
- 5.3 Qualitative colormaps:离散化色图
- 5.4 Miscellaneous colormaps:其它色图
- 二、保存图片 pyplot.savefig()
- 三、箱线图绘制 boxplot()
-
- 1. 箱线图基本介绍
- 2. 函数的使用 pyplot.boxplot()
- 四、词云图
-
- 1. WordCloud 参数查看
- 2. 中文使用词云图,需要使用 jieba 分词模块
- 3. jieba.analyse的使用:提取关键字
- 在最开始,先引入我们的 numpy 和 matplotlib 库。
from matplotlib import pyplot as plt
import numpy as np
- 同时,对基本配置进行设置,将中文字体设置为黑体,不包含中文负号,分辨率为 100,图像显示大小设置为 (5,3)。
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['figure.dpi'] = 100
plt.rcParams['figure.figsize'] = (5,3)
一、散点图
- 散点图也叫 X-Y 图,它将所有的数据以点的形式展现在直角坐标系上,以显示变量之间的相互影响程度,点的位置由变量的数值决定。
- 通过观察散点图上数据点的分布情况,我们可以推断出变量间的相关性。如果变量之间不存在相互 关系,那么在散点图上就会表现为随机分布的离散的点,如果存在某种相关性,那么大部分的数据 点就会相对密集并以某种趋势呈现。
- 数据的相关关系主要分为:正相关(两个变量值同时增长)、负相关(一个变量值增加另一个变量值下降)、 不相关、线性相关、指数相关等,表现在散点图上的大致分布如下图所示。那些离点集群较远的点我们称为离群点或者异常点。
1. scatter() 函数
- scatter() 函数的语法模板如下:
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None, plotnonfinite=False, data=None, *kwargs)
- 其参数含义如下:
- x, y 表示散点的坐标。
- s 表示散点的面积。
- c 表示散点的颜色(默认值为蓝色,‘b’,其余颜色同 plt.plot( ))。
- marker 表示散点样式(默认值为实心圆,‘o’,其余样式同 plt.plot( ))。
- alpha 表示散点透明度([0, 1] 之间的数,0 表示完全透明,1 则表示完全不透明)。
- linewidths 表示散点的边缘线宽。
- edgecolors 表示散点的边缘颜色。
- cmap 表示 Colormap,默认 None,标量或者是一个 colormap 的名字,只有 c 是一个浮点数数组的时才使用。
- scatter() 函数接收长度相同的数组参数,一个用于 x 轴的值,另一个用于 y 轴上的值。
- 其中,x 轴和 y 轴的数据我们直接设定并使用 plt.scatter( ) 函数进行散点图的绘制。
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
plt.scatter(x, y)
2. 设置图标大小
- x 轴和 y 轴仍采用上面的数据,同时,生成一个 [0,1)之间的随机浮点数或N维浮点数组,用以表示散点的大小。
x = np.array([1, 2, 3, 4,