matplotlib.pyplot散点图,散点颜色大小设置,添加标题、xy轴标签和每组散点标签,颜色条设置,随机生成散点图
1. 第一个散点图
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
x = [6, 8, 9, 10, 11, 14, 15, 17]
y = [97, 88, 102, 95, 90, 103, 111, 106]
plt.scatter(x, y)
plt.show()
结果
2. 散点颜色大小设置,添加标题、xy轴标签和每组散点标签
散点颜色 c=colors 其中colors为列表
散点大小 s=sizes 其中sizes为列表
添加标题 plt.title()
x,y轴标签plt.xlabel(‘x轴’)和plt.ylabel(‘y轴’)
如果一张散点图有两组数据需要添加标签时使用label=‘str’,比如"plt.scatter(x, y, color=‘red’, label=‘第一组’)"
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
# 设置字体
plt.rcParams['font.family'] = ['Microsoft YaHei']
# 创建数据
x = [6, 8, 9, 10, 11, 14, 15, 17]
y = [97, 88, 102, 95, 90, 103, 111, 106]
# 第一张表图中位置(1,1) 设置颜色和不同大小
plt.subplot(1, 2, 1)
# 大小
sizes = [20, 50, 90, 1000, 200, 500, 100, 60]
# 颜色
colors = ["red", "green", "black", "orange", "purple", "beige", "cyan", "magenta"]
plt.scatter(x, y, s=sizes, c=colors)
# 设置第一个表标题
plt.title("不同大小彩色点")
# 第二张表图中位置(1,2)
plt.subplot(1, 2, 2)
# 第二张表的另外一组数据设置不同颜色
x1 = [17, 2, 9, 4, 11, 12, 9, 6]
y1 = [86, 103, 87, 94, 78, 77, 85, 86]
# 输入第一组数据
plt.scatter(x, y, color='red', label='第一组')
# 输入第二组数据
plt.scatter(x1, y1, color='yellow', label='第二组')
# 设置标签位置
plt.legend(loc="upper right")
# 第二个小标题
plt.title("两组不同颜色点添加标签")
# 添加x,y轴标签
plt.xlabel('x轴')
# 更改y轴标签颜色和字体大小
plt.ylabel('y轴绿色10字号', color='green', fontsize=10)
# 总标题
plt.suptitle('参数对比20字号', color='red', fontsize=20)
plt.show()
结果
3.颜色条设置,随机生成散点图
颜色条参数 cmap=‘str’ 如"plt.scatter(x, y, c=colors, cmap=‘cool’)"
调用颜色条 plt.colorbar()
这里使用random模块生成随机散点图
更多颜色条参考【菜鸟教程】https://www.runoob.com/matplotlib/matplotlib-scatter.html
# -*- coding: utf-8 -*-
import random
import matplotlib.pyplot as plt
# 设置字体
plt.rcParams['font.family'] = ['Microsoft YaHei']
# 第1张表图中位置(1,1)添加颜色条和颜色
plt.subplot(1, 2, 1)
# 创建数据
x = [6, 8, 9, 10, 11, 14, 15, 17]
y = [97, 88, 102, 95, 90, 103, 111, 106]
# 颜色和颜色条参数cmap
colors = [0, 10, 20, 30, 40, 50, 60, 70]
plt.scatter(x, y, c=colors, cmap='cool')
# 调用旁边颜色条
plt.colorbar()
plt.title("颜色条")
# 第2张表图中位置(1,2),随机数据,换个颜色条参数cmap设置为afmhot_r
plt.subplot(1, 2, 2)
# 随机生成数据
x = [random.random() for i in range(50)]
y = [random.random() for j in range(50)]
# 随机生成颜色
colors = [random.random() for k in range(50)]
# 随机生成大小
area = [random.randrange(0, 400) for l in range(50)] # 0-400大小
# 设置颜色及透明度,设置颜色条cmap='turbo_r'
plt.scatter(x, y, s=area, c=colors, alpha=0.5, cmap='turbo_r')
# 调用旁边颜色条
plt.colorbar()
plt.title("random创建随机散点图")
plt.suptitle("不同参数对比", color='purple', fontsize=20)
plt.show()
结果
公众号下回复“散点图源码”获取源码