文章目录
各种图形绘制的函数。重要的一些小知识点。案例1:(1)绘制直线(2)绘制正余玄曲线(3)绘制柱状图(4)绘制饼图(5)绘制直方图(6)多个柱图绘制一张表,添加了图例(7)绘制等高线图
(8)绘制简单的三维图参考链接
各种图形绘制的函数。
折线图: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