import matplotlib.pyplot as plt
import random
"""
matplotlib入门(绘制折线图)
"""
x =range(0,24,2)print(list(x))
y =[random.randint(23,34)for num inrange(0,12)]
plt.plot(x, y)# 绘制图形
plt.show()
二、绘制折线图并设置刻度
import matplotlib.pyplot as plt
import random
"""
matplotlib设置刻度
"""
x =range(0,24,2)
y =[random.randint(23,34)for num inrange(0,12)]
plt.figure(figsize=(10,8), dpi=80)# 设置图片的大小和清晰度
plt.plot(x, y)
plt.xticks(x)# 设置x的刻度# plt.xticks(x[::2])
plt.show()
三、设置坐标轴别名
import matplotlib.pyplot as plt
from matplotlib import font_manager
import numpy as np
"""
设置横坐标值中文显示
"""
fm = font_manager.FontProperties(fname=r'C:\Windows\Fonts\simkai.ttf')# 设置中文字体路径
x = np.arange(1,6)
xticks =['比较小','小','中','大','比较大']
y =[1,2,3,4,5]
plt.plot(x, y)
plt.xticks(x, xticks, fontproperties=fm)
plt.show()
四、添加图像描述信息
import matplotlib.pyplot as plt
from matplotlib import font_manager
import numpy as np
"""
添加图像描述信息(x轴、y轴别名,图像名等)
"""
x = np.arange(1,6)
xticks =['比较小','小','中','大','比较大']
y =[1,2,3,4,5]
plt.plot(x, y)
fm = font_manager.FontProperties(fname=r'C:\Windows\Fonts\simkai.ttf')
plt.xticks(x, xticks, fontproperties=fm)# 设置坐标轴描述信息
plt.xlabel('x轴', fontproperties=fm)
plt.ylabel('y轴', fontproperties=fm)# 设置图像标题
plt.title(label='线形图', fontproperties=fm)
plt.show()
五、绘制多个折线图
from matplotlib import pyplot as plt
from matplotlib import font_manager
x =[i for i inrange(11,31)]
y1 =[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
y2 =[1,0,3,1,2,2,3,3,2,1,2,1,1,1,1,1,1,1,1,1]"""
绘制多个折线图
"""
fm = font_manager.FontProperties(fname=r'C:\Windows\Fonts\simkai.ttf')
xticks =[year for year in x]# 设置x轴间隔
plt.plot(x, y1)# 绘制(x, y1)的折线图
plt.plot(x, y2)# 绘制(x, y2)的折线图
plt.xticks(x, xticks, fontproperties=fm)
plt.title(label='折线图', fontproperties=fm)
plt.xlabel(xlabel='岁数', fontproperties=fm)
plt.ylabel(ylabel='个数', fontproperties=fm)
plt.show()
六、自定义绘制图形风格
from matplotlib import pyplot as plt
from matplotlib import font_manager
x =[i for i inrange(11,31)]# 岁数
y1 =[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]# 个数
y2 =[1,0,3,1,2,2,3,3,2,1,2,1,1,1,1,1,1,1,1,1]"""
自定义绘制图形风格
"""
fm = font_manager.FontProperties(fname=r'C:\Windows\Fonts\simkai.ttf')
xticks =[year for year in x]# 设置x轴间隔
plt.plot(x, y1, color='red', linestyle='--', linewidth=2, alpha=0.5)# alpha定义线条透明度# plt.plot(x, y2, color='black', linestyle='-.')# plt.plot(x, y2, color='black', linestyle=':')
plt.plot(x, y2, color='black', linestyle='-.')
plt.xticks(x, xticks, fontproperties=fm)
plt.title(label='交叉折线图', fontproperties=fm)
plt.show()
七、为线条添加图例
from matplotlib import pyplot as plt
from matplotlib import font_manager
x =[i for i inrange(11,31)]# 岁数
y1 =[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]# 个数
y2 =[1,0,3,1,2,2,3,3,2,1,2,1,1,1,1,1,1,1,1,1]"""
为线条添加图例(设置线条名称)
"""
fm = font_manager.FontProperties(fname=r'C:\Windows\Fonts\simkai.ttf')
xticks =[year for year in x]# 设置x轴间隔
plt.plot(x, y1, color='red', linestyle='--', label='红色')
plt.plot(x, y2, color='black', linestyle='--', label='黑色')
plt.legend(prop=fm, loc='best')
plt.xticks(x, xticks, fontproperties=fm)
plt.title(label='交叉折线图', fontproperties=fm)
plt.show()
八、为图像点添加文本注释
from matplotlib import pyplot as plt
from matplotlib import font_manager
x =[i for i inrange(11,31)]# 岁数
y1 =[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]# 个数
y2 =[1,0,3,1,2,2,3,3,2,1,2,1,1,1,1,1,1,1,1,1]"""
为图像点添加文本注释,需指定坐标
"""
fm = font_manager.FontProperties(fname=r'C:\Windows\Fonts\simkai.ttf')
xticks =[year for year in x]# 设置x轴间隔
plt.plot(x, y1, color='red', linestyle='--', label='红色')
plt.plot(x, y2, color='black', linestyle='--', label='黑色')
plt.legend(prop=fm, loc='best')
plt.annotate('红色最大值', xy=(24,6), fontproperties=fm)
plt.annotate('黑色最大值', xy=(13,3), fontproperties=fm)
plt.xticks(x, xticks)
plt.title(label='交叉折线图', fontproperties=fm)
plt.show()
九、绘制散点图
from matplotlib import pyplot as plt
from matplotlib import font_manager
"""
绘制散点图
"""
fm = font_manager.FontProperties(fname=r'C:\Windows\Fonts\simkai.ttf')
a =[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]
b =[26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6]
three_month =[i for i inrange(1,32)]
ten_month =[i for i inrange(1,32)]
plt.scatter(x=a, y=three_month, label='三月')
plt.scatter(x=b, y=ten_month, label='十月')
plt.legend(prop=fm, loc='best')
plt.show()
十、绘制条形图
from matplotlib import pyplot as plt
from matplotlib import font_manager
"""
绘制条形图
"""
fm = font_manager.FontProperties(fname=r'C:\Windows\Fonts\simkai.ttf')
movie =["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5:最后的骑士","摔跤吧!爸爸","加勒比海盗5:死无对证","金刚:骷髅岛","极限特工:终极回归","生化危机6:终章","乘风破浪","神偷奶爸3","智取威虎山","大闹天竺","金刚狼3:殊死一战","蜘蛛侠:英雄归来","悟空传","银河护卫队2","情圣","新木乃伊",]
movie_ =range(len(movie))
money =[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23]
plt.bar(movie_, money, width=0.5, color='skyblue')
plt.xticks(movie_, movie, fontproperties=fm, rotation=90)# rotation设置文字旋转
plt.show()
十一、条形图分类
from matplotlib import pyplot as plt
from matplotlib import font_manager
"""
条形图分类
"""
fm = font_manager.FontProperties(fname=r'C:\Windows\Fonts\simkai.ttf')
a =["猩球崛起3:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]
x =range(len(a))
b_14 =[2358,399,2358,362]
b_15 =[12357,156,2045,168]
b_16 =[15746,312,4497,319]
val =0.2
plt.bar(x, b_14, width=0.2, label='9月14')
plt.bar([i + val for i in x], b_15, width=0.2, label='9月15')
plt.bar([i + val *2for i in x], b_16, width=0.2, label='9月16')
plt.legend(prop=fm)
plt.xticks([i + val for i in x], a, fontproperties=fm)
plt.show()
十二、绘制直方图
from matplotlib import pyplot as plt
from matplotlib import font_manager
"""
绘制直方图
"""
fm = font_manager.FontProperties(fname=r'C:\Windows\Fonts\simkai.ttf')
a =[131,98,125,131,124,139,131,117,128,108,135,138,131,102,107,114,119,128,121,142,127,130,124,101,110,116,117,110,128,128,115,99,136,126,134,95,138,117,111,78,132,124,113,150,110,117,86,95,144,105,126,130,126,130,126,116,123,106,112,138,123,86,101,99,136,123,117,119,105,137,123,128,125,104,109,134,125,127,105,120,107,129,116,108,132,103,136,118,102,120,114,105,115,132,145,119,121,112,139,125,138,109,132,134,156,106,117,127,144,139,139,119,140,83,110,102,123,107,143,115,136,118,139,123,112,118,125,109,119,133,112,114,122,109,106,123,116,131,127,115,118,112,135,115,146,137,116,103,144,83,123,111,110,111,100,154,136,100,118,119,133,134,106,129,126,110,111,109,141,120,117,106,149,122,122,110,118,127,121,114,125,126,114,140,103,130,141,117,106,114,121,114,133,137,92,121,112,146,97,137,105,98,117,112,81,97,139,113,134,106,144,110,137,137,111,104,117,100,111,101,110,105,129,137,112,120,113,133,112,83,94,146,133,101,131,116,111,84,137,115,122,106,144,109,123,116,111,111,133,150]
space =3# 设置间隔
group_num =int((max(a)-min(a))/ space)# 设置组数
plt.hist(a, group_num)
plt.xticks(list(range(min(a),max(a)+1))[::space], rotation=45)
plt.grid(True, linestyle='-.', alpha=0.5)# 设置分割线
plt.show()