Matplotlab绘图基础

import matplotlib.pyplot as plt

设置画布大小

plt.figure(figsize=(6, 3))

plt.plot(x,y,'g^',label='sin(x)')     参数1:X轴,参数2:y轴   颜色 形状  label=“线条标题” plt.legend(loc='best')  需要和legend配合使用

plt.title("标题名称")   

plt.xlim((0, np.pi + 1))   设置X轴范围
plt.ylim((-3, 3))   设置Y轴范围
plt.xlabel('X')  设置X轴标题
plt.ylabel('Y')  设置Y轴标题

plt.legend(loc='best')  显示右上角线条款式

首先来看下如何绘制散点图。

k = 500
x = np.random.rand(k) 
y = np.random.rand(k)
size = np.random.rand(k) * 50 # 生成每个点的大小
colour = np.arctan2(x, y) # 生成每个点的颜色大小
plt.scatter(x, y, s=size, c=colour)
plt.colorbar() # 添加颜色栏
plt.show()

柱状图我们经常会用到,我们来看下如何画出柱状图,并在图上标注出数据对应的数值。

k = 10
x = np.arange(k)
y = np.random.rand(k)
plt.bar(x, y) # 画出 x 和 y 的柱状图

# 增加数值
for x, y in zip(x, y):
    plt.text(x, y , '%.2f' % y, ha='center', va='bottom') #设置参数 ha='center' 横向居中对齐,设置 va='bottom'纵向底部(顶部)对齐。
plt.show()

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0) # only "explode" the 2nd slice (i.e. 'Hogs')


fig1, ax1 = plt.subplots(1)

ax1.pie(sizes, labels=labels, autopct='%1.1f%%', shadow=True)
ax1.axis('equal')

# ax1.legend(labels=labels, loc='upper right')


plt.show()

 

中文乱码解决

Matplotlib 有个让人恼火的问题是,默认情况下,Matplotlib 中文会乱码。

x = ['北京', '上海', '深圳', '广州']
y = [60000, 58000, 50000, 52000]
plt.plot(x, y)
plt.show()

可以看到,上面所有的中文都乱码了,显示成方框了,如何解决呢?

其实只需要配置下后台字体即可。

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

plt.plot(x, y)
plt.show()



posted @ 2020-05-25 16:37  一只竹节虫  阅读(390)  评论(0编辑  收藏  举报