matplotlib初学笔记

各种图形绘制的函数。

折线图:plot
柱形图: bar
条形图: barh
散点图:scatter
直方图: hist
饼图:pie

等高线图:contour
流量图: Streamplot

重要的一些小知识点。

(1)
plt.title:添加标题
plt.xlabel:添加x方向的标题
plt.ylabel:添加y方向的标题
plt.xticks:添加x方向的坐标
plt.yticks:添加y方向的坐标
plt.show:展示图形
plt.axis:修改x轴,y轴长度. plt.axis([0,10,0,10])
(2)
处理中文乱码:plt.rcParams[‘font.sans-serif’] = [‘SimHei’]
(3)
添加颜色color属性:plt.plot(x,y,color=‘r’) r表示红色
修改线条宽度linewidth属性:plt.plot(x,y,linewidth=1.0)
第二种写法;plt.plot(x,y,‘color’,‘r’)
plt.setp(lines,color=‘r’,linewidth=2.0)
plt.setp(lines, ‘color’, ‘r’, ‘linewidth’, 2.0)
(4)保存图片:plt.savefig(‘aa.jpg’) 默认是png的格式。
(5)subplot使用
(6)np.random.seed(0) 执行多次,每次获取的随机数都是一样的。
random6 = np.random.randn(500) # 生成标准正太分布
random7 = np.random.normal(-2,1,1000) # 生成标准正太分布
(7)折线图增加拐点 plt.plot(x, y1, marker=‘o’,ms=10) maker设置形状,ms设置大小
(8)plt.plot(x, y1, marker=‘o’, mec=‘r’, mfc=‘w’) mec设置颜色,mfc设置是否实心
(9)alpha 设置透明度。plt.bar(real_anme,reall_num1,alpha=0.5)
(10)添加图例
plt.bar(x,reall_num1,alpha=0.5,width=width,label=real_name[0])
plt.legend()
(11) bins 设置直方图的柱子数 plt.hist(random6,bins=5,alpha=0.5)

案例1:
(1)绘制直线
import matplotlib.pyplot as plt
x = [2,3]
y = [3,4]
plt.plot(x,y)
plt.show()
(2)绘制正余玄曲线
import matplotlib.pyplot as plt
import numpy as np 
x = np.arange(0,6,0.1)
y = np.sin(x)
y1= np.cos(x)
plt.plot(x,y)
plt.plot(x,y)
plt.show()
(3)绘制柱状图
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
x = ['一月','二月','三月','四月']
y = [4,5,8,7]
# # plt.bar(x,y)
plt.bar(x,y)
plt.plot(x,y,color='r')
plt.show()
(4)绘制饼图
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
men = 12545
women = 15423
man_per = men/(men+women)
women_per = women/(men+women)

paches,texts,autotexts = plt.pie([man_per,women_per],labels=['男{}'.format(men),'女{}'.format(women)],colors=['red','blue'],explode=(0,0.02),autopct='%0.1f%%')

# 设置字体颜色
for text in autotexts:
    text.set_color('white')


# 设置字体大小

for font in texts+autotexts:
    font.set_fontsize(20)


plt.title('饼状图')
plt.show()

在这里插入图片描述

(5)绘制直方图
import numpy as np
import matplotlib.pyplot as plt
# import pyecharts
#
# np.random.seed(20)
random6 = np.random.randn(500)  # 生成标准正太分布

random7 = np.random.normal(-2,1,1000)


# plt.hist(random6,bins=5,alpha=0.5) # 分成5个柱子。
# plt.hist(random7,bins=5,alpha=0.5) # 分成5个柱子。

kwargs = dict(bins=100,alpha=0.8)
plt.hist(random6,**kwargs)
plt.hist(random7,**kwargs)
# plt.rcParams['font.sans-serif'] = ['SimHei']
plt.title('直方图')
plt.show()
(6)多个柱图绘制一张表,添加了图例
import matplotlib.pyplot as plt

import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
real_name = ['第一步电影','第二部电影','第三步电影']

reall_num1 = [123,568,235]
reall_num2 = [134,258,668]
reall_num3 = [758,529,648]
x = np.arange(len(real_name))
print(x)
width = 0.3
plt.bar(x,reall_num1,alpha=0.5,width=width,label=real_name[0])  # label添加图例使用
plt.bar([i+width for i in x],reall_num2,alpha=0.5,width=width,label=real_name[1])
plt.bar([i+2*width for i in x],reall_num3,alpha=0.5,width=width,label=real_name[2])
plt.title('电影票房汇总')
plt.xlabel('电影名称')
plt.ylabel('对应票房')
plt.xticks([i+width for i in x],real_name)
plt.legend()  # 这个是label一起添加图例
plt.show()
(7)绘制等高线图
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-10,10,100)
y = np.linspace(-10,10,100)

# 计算x y相交的点

X,Y = np.meshgrid(x,y)

# 计算Z点
Z = np.sqrt(X**2+Y**2)

#绘制等高线图
plt.contour(X,Y,Z)
# plt.contourf(X,Y,Z)
plt.show()
(8)绘制简单的三维图
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

X = [1,1,2,2]
Y = [3,4,4,3]
Z = [1,100,1,1]

fig = plt.figure()
# 创建一个3d的子图,放到figure画布里面
ax = Axes3D(fig)
ax.plot_trisurf(X,Y,Z)
plt.show()

参考链接

https://matplotlib.org/gallery.html
https://wizardforcel.gitbooks.io/matplotlib-user-guide/content/3.1.html
https://pyecharts.org/#/zh-cn/global_options

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值