判断小数点几位
先将浮点数转化为字符串,然后截取小数点右边的字符,在使用len函数。
x=3.25
len(str(x).split(".")[1])
绘制散点图
#需导入要用到的库文件
import numpy as np # 数组相关的库
import matplotlib.pyplot as plt # 绘图库
N = 10
x = np.random.rand(N) # 包含10个均匀分布的随机值的横坐标数组,大小[0, 1]
y = np.random.rand(N) # 包含10个均匀分布的随机值的纵坐标数组
plt.scatter(x, y, alpha=0.6) # 绘制散点图,透明度为0.6(这样颜色浅一点,比较好看)
plt.show()
调整散点大小
N = 10
x = np.random.rand(N)
y = np.random.rand(N)
area = np.random.rand(N) * 1000 # 包含10个均匀分布的随机值的面积数组,大小[0, 1000]
fig = plt.figure()
ax = plt.subplot()
ax.scatter(x, y, s=area, alpha=0.5) # 绘制散点图,面积随机
plt.show()
调整散点颜色
N = 10
x = np.random.rand(N)
y = np.random.rand(N)
x2 = np.random.rand(N)
y2 = np.random.rand(N)
area = np.random.rand(N) * 1000
fig = plt.figure()
ax = plt.subplot()
ax.scatter(x, y, s=area, alpha=0.5)
ax.scatter(x2, y2, s=area, c=‘green’, alpha=0.6) # 改变颜色
plt.show()
调整散点形状
N = 10
x = np.random.rand(N)
y = np.random.rand(N)
x2 = np.random.rand(N)
y2 = np.random.rand(N)
x3 = np.random.rand(N)
y3 = np.random.rand(N)
area = np.random.rand(N) * 1000
fig = plt.figure()
ax = plt.subplot()
ax.scatter(x, y, s=area, alpha=0.5)
ax.scatter(x2, y2, s=area, c=‘green’, alpha=0.6)
ax.scatter(x3, y3, s=area, c=area, marker=‘v’, cmap=‘Reds’, alpha=0.7) # 更换标记样式,另一种颜色的样式
plt.show()
添加文本(matplotlib.pyplot.text)
语法:matplotlib.pyplot.text(x, y, s, fontdict=None, **kwargs)
import matplotlib.pyplot as plt
plt.style.use(‘seaborn-whitegrid’)
plt.figure(figsize=(5,4),dpi=120)
plt.plot([1,2,5],[7,8,9])
plt.text(x=2.2,#文本x轴坐标
y=8, #文本y轴坐标
s=‘basic unility of text’, #文本内容
rotation=1,#文字旋转
ha=‘left’,#x=2.2是文字的左端位置,可选’center’, ‘right’, ‘left’
va=‘baseline’,#y=8是文字的低端位置,可选’center’, ‘top’, ‘bottom’, ‘baseline’, ‘center_baseline’
fontdict=dict(fontsize=12, color=‘r’,
family=‘monospace’,#字体,可选’serif’, ‘sans-serif’, ‘cursive’, ‘fantasy’, ‘monospace’
weight=‘bold’,#磅值,可选’light’, ‘normal’, ‘medium’, ‘semibold’, ‘bold’, ‘heavy’, ‘black’
)#字体属性设置
给文本加上背景框
import matplotlib.pyplot as plt
plt.figure(figsize=(5,4),dpi=120)
plt.plot([1,2,5],[7,8,9])
text = plt.text(x=2.2,#文本x轴坐标
y=8, #文本y轴坐标
s=‘basic unility of text’, #文本内容
fontdict=dict(fontsize=12, color='r',family='monospace',),#字体属性字典
#添加文字背景色
bbox={'facecolor': '#74C476', #填充色
'edgecolor':'b',#外框色
'alpha': 0.5, #框透明度
'pad': 8,#本文与框周围距离
}
)
text.set_color(‘b’)#修改文字颜色
2、添加注释(matplotlib.pyplot.annotate)
语法:matplotlib.pyplot.annotate(text, xy, *args, **kwargs)
matplotlib.pyplot.annotate结合matplotlib.pyplot.text添加注释内容。
plt.figure(figsize=(5,4),dpi=120)
plt.plot([1,2,5],[7,8,9])
plt.annotate(‘basic unility of annotate’,
xy=(2, 8),#箭头末端位置
xytext=(1.0, 8.75),#文本起始位置
#箭头属性设置
arrowprops=dict(facecolor='#74C476',
shrink=1,#箭头的收缩比
alpha=0.6,
width=7,#箭身宽
headwidth=40,#箭头宽
hatch='--',#填充形状
frac=0.8,#身与头比
#其它参考matplotlib.patches.Polygon中任何参数
),
)
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 6)
y = x * x
plt.plot(x, y, marker=‘o’)
for xy in zip(x, y):
plt.annotate("(%s,%s)" % xy, xy=xy, xytext=(-20, 10), textcoords=‘offset points’)
plt.show()