微信公众号:yale记 关注可了解更多的教程。问题或建议,请公众号留言;
背景介绍
今天我们将学习如何在Matplotlib中创建散点图。散点图非常适合确定两组数据是否相关。如果存在相关性,散点图可以让我们发现这些趋势。散点图的想法通常是比较两个变量,让我们开始吧。
入门实例
首先我们看一下基本的散点图绘制代码:
代码语言:javascript
复制
from matplotlib import pyplot as plt
from matplotlib import font_manager
#设置图表样式
plt.style.use('seaborn')
#x轴数据列表
x = [5,7,8,5,6,7,9,2,3,4,4,4,2,6,3,6,8,6,4,1]
#y轴数据列表
y = [7,4,3,9,1,3,2,5,2,4,8,7,1,6,4,9,7,7,5,1]
colors = [7,5,9,7,5,7,2,5,3,7,1,2,8,1,9,2,5,6,7,5]
#使用scatter()创建散点图表
#s:散点大小
#c :散点颜色
#cmap:Clolormap颜色映射名字
#仅当c为浮点数组时才使用
plt.scatter(x,y,s=100,c=colors,cmap='Greens',
edgecolor='black',lineWidth=1,
alpha=0.75
)
zh_font = font_manager.\
FontProperties(fname='C:\\Windows\\Fonts\\msyh.ttf')
#添加颜色条到绘图中
cbar = plt.colorbar()
cbar.set_label('图例',fontproperties=zh_font)
plt.tight_layout()
plt.show()
运行结果:
综合实例
接下来我们来做一个热门视频的散点图分布,从本地准备好的data.csv文件中读取内容包括,每行为一个视频的播放量、喜欢数(点赞量)、喜欢/不喜欢的比例三项内容:
我们用散点图的方式显示一下:
代码语言:javascript
复制
import pandas as pd
from matplotlib import pyplot as plt
from matplotlib import font_manager
#设置图表样式
plt.style.use('seaborn')
#读取数据
#播放次数,点赞量,喜欢与不喜欢的比例
data = pd.read_csv('data.csv')
view_count = data['view_count']
likes = data['likes']
ratio = data['ratio']
#调用散点图表方法
plt.scatter(view_count, likes, c=ratio, cmap='summer',
edgecolor='black', linewidth=1, alpha=0.75)
zh_font = font_manager.\
FontProperties(fname='C:\\Windows\\Fonts\\msyh.ttf')
cbar = plt.colorbar()
cbar.set_label('喜欢/不喜欢的比例',fontproperties=zh_font)
#x和y轴单位用log显示
plt.xscale('log')
plt.yscale('log')
plt.title('热门网站视频',fontproperties=zh_font)
plt.xlabel('观看次数',fontproperties=zh_font)
plt.ylabel('总点赞量',fontproperties=zh_font)
plt.tight_layout()
plt.show()
运行结果:
图注:yale记公众号