python - 如何创建具有 3 列的散点图
问题描述
我有一个 df 看起来:
df_results = pd.DataFrame(data={})
df_results['names'] = ['James', 'Lucas', 'Henry', 'James', 'Lucas', 'Henry']
df_results['try_name'] = ["try_1", "try_1", "try_1", "try_2", "try_2", "try_2"]
df_results['score'] = [0.7, 0.9, 0.3, 0.91, 0.1, 0.2]
names try_name score
0 James try_1 0.70
1 Lucas try_1 0.90
2 Henry try_1 0.30
3 James try_2 0.91
4 Lucas try_2 0.10
我想创建一个图(散点图),其中:
- x 轴是列
try_name
- y轴是列
score
- 值(图中的点)根据列
names
(3种不同颜色)
我怎样才能创建这个情节?
解决方案
纯matplotlib解决方案:
fig = plt.figure(figsize=(7,4))
ax = fig.add_subplot(111)
for name in df_results.names.unique():
ax.scatter(df_results[df_results.names == name].try_name,
df_results[df_results.names == name].score, label=name)
ax.legend()
使用熊猫图:
fig = plt.figure(figsize=(7,4))
ax = fig.add_subplot(111)
for i,name in enumerate(df_results.names.unique()):
df_results[df_results.names == name].plot.scatter('try_name', 'score',
ax=ax, color='C{}'.format(i),
label=name)
ax.legend()
推荐阅读
- css - 如何让 flexbox 增长以填充 div 的可用最大高度
- facebook-graph-api - Facebook Marketing API 按洞察力支出金额过滤广告
- reactjs - React Web App 与生产性能问题
- vim - 处理 InsertEnter 自动命令时检测到错误:E117:未知功能:jedi#remove_usages
- javascript - 为什么许多 linter 在使用逗号运算符编写简洁代码时会发出警告?
- terminal - “终端”想管理您的计算机。管理可以包括密码
- opengl - 为什么要使用外部 OpenGL 加载器函数而不是 GLAD 的内置加载器?
- node.js - 云存储POST上传使用签名url上传文件时突然开始返回SignatureDoesNotMatch错误
- javascript - 需要后如何提交表单并保持在同一页面上?
- laravel - Laravel $request->getContent() 返回空字符串