利用 matplotlib 制作散点图

利用 matplotlib 制作散点图:

使用scatter绘制散点图

matplotlib.pyplot.scatter的函数参数如下:
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None, data=None, **kwargs)
常用参数有:x,y组成了散点的坐标;s为散点的面积;c为散点的颜色(默认为蓝色’b’);marker为散点的标记;alpha为散点的透明度(0与1之间的数,0为完全透明,1为完全不透明);linewidths为散点边缘的线宽;如果marker为None,则使用verts的值构建散点标记;edgecolors为散点边缘颜色

例题:计算3月份每天最高气温

from matplotlib import pyplot as plt
from matplotlib import  font_manager
import numpy as np
y=[11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]
x=range(1,32)

#设置图形大小
plt.figure(figsize=(20,8),dpi=80)
#使用scatter绘制散点图
#设置大小
size=np.random.randint(0,100,31)
plt.scatter(x,y,label='3月份',alpha=0.5,s=size,c='red')

my_font=font_manager.FontProperties(fname='F:/大数据分析全栈工程师/2020-02-12/HYTianZhenTi.ttf',size=10)
#调整x轴的刻度
xticks_labels=['3月{}日'.format(i) for i in x]
plt.xticks(x[::3],xticks_labels[::3],fontproperties=my_font,rotation=45)
#调整y轴的刻度
yticks_label=['{}°C'.format(i) for i in range(min(y),max(y)+1)]
plt.yticks(range(min(y),max(y)+1),yticks_label)

plt.xlabel('日期',fontproperties=my_font)
plt.ylabel('温度',fontproperties=my_font)

#图例
plt.legend(prop=my_font)
plt.show()
# plt.savefig('F:/sandiantu.svg')

在这里插入图片描述

1、绘制普通散点图
import matplotlib.pyplot as plt
import numpy as np
# 10个点
N = 10
x = np.random.rand(N)
y = np.random.rand(N)
plt.scatter(x, y)
plt.show()

在这里插入图片描述

2、更改散点的大小
import matplotlib.pyplot as plt
import numpy as np
# 10个点
N = 10
x = np.random.rand(N)
y = np.random.rand(N)
# 每个点随机大小
s = (30*np.random.rand(N))**2
plt.scatter(x, y, s=s)
plt.show()

在这里插入图片描述

3、更改散点颜色和透明度
import matplotlib.pyplot as plt
import numpy as np
N = 10
x = np.random.rand(N)
y = np.random.rand(N)
# 每个点随机大小
s = (30*np.random.rand(N))**2
# 随机颜色
c = np.random.rand(N)
plt.scatter(x, y, s=s, c=c, alpha=0.5)
plt.show()

在这里插入图片描述

4、更改散点形状
import matplotlib.pyplot as plt
import numpy as np
# 10个点
N = 10
x = np.random.rand(N)
y = np.random.rand(N)
s = (30*np.random.rand(N))**2
c = np.random.rand(N)
plt.scatter(x, y, s=s, c=c, marker='^', alpha=0.5)
plt.show()

在这里插入图片描述

5、在一张图上绘制两组数据的散点
import matplotlib.pyplot as plt
import numpy as np
# 10个点
N = 10
x1 = np.random.rand(N)
y1 = np.random.rand(N)
x2 = np.random.rand(N)
y2 = np.random.rand(N)
plt.scatter(x1, y1, marker='o')
plt.scatter(x2, y2, marker='^')
plt.show()

在这里插入图片描述

6、为散点设置图例
import matplotlib.pyplot as plt
import numpy as np
# 10个点
N = 10
x1 = np.random.rand(N)
y1 = np.random.rand(N)
x2 = np.random.rand(N)
y2 = np.random.rand(N)
plt.scatter(x1, y1, marker='o', label="circle")
plt.scatter(x2, y2, marker='^', label="triangle")
plt.legend(loc='best') 
plt.show()

在这里插入图片描述

发布了49 篇原创文章 · 获赞 76 · 访问量 2709

猜你喜欢

转载自blog.csdn.net/qq_39783601/article/details/104561507
今日推荐