1.conda
创建环境:conda create --name python_bai python=3.7
激活环境:activate python_bai
安装包:conda\pip install 包名
2.matplotlib折线图
(1) 绘图基础
from matplotlib import pyplot as plt
x = range(2,26,2)
y = [15,13,14,15,17,16,25,26,22,23,17,19]
#设置图片大小
fig = plt.figure(figsize=(15,8),dpi=100) #宽20高8,像素100
#绘制折线图
plt.plot(x,y)
#绘制x轴的刻度
#plt.xticks(range(2,25)) #用range控制步长,但最小步长只能为1
_xtick_label = [i/2 for i in range(4,49) ] #先弄小
plt.xticks(_xtick_label[::3]) #再随意调
#绘制y轴的刻度
plt.yticks(range(min(y),max(y)+1) )
#保存
plt.savefig('t1.png')
#展示图
plt.show()
(2)坐标轴显示时间(字符串显示)
导入font_manager:
import matplotlib.font_manager as fm
定义中文字体:
myfont = fm.FontProperties(fname='C:/Windows/Fonts/msyh.ttc')
x轴用定义的字体:
plt.xticks(_x[::10],_xtick_labels[::10],rotation = 45,fontproperties=myfont)
# -*- coding: GBK -*-
from matplotlib import pyplot as plt
import random
import matplotlib.font_manager as fm
# 微软雅黑,如果需要宋体,可以用simsun.ttc
myfont = fm.FontProperties(fname='C:/Windows/Fonts/msyh.ttc')
y = [ random.randint(20,35) for i in range(120)]
x = range(0,120)
plt.plot(x,y)
#调整x轴的刻度
_x = list(x) #转为列表,range不能取步长,后面需要取步长
_xtick_labels = ['10点{0}分'.format(i) for i in range(60)] + ['11点{0}分'.format(i) for i in range(60)]
plt.xticks(_x[::10],_xtick_labels[::10],rotation = 45,fontproperties=myfont) #把数值型对应到字符串,rotation旋转度数
#添加描述消息
plt.xlabel('时间',fontproperties=my_font)
plt.ylabel('温度\℃',fontproperties=my_font)
plt.title('10点到12点的温度变化图',fontproperties=my_font)
plt.show()
(3)多条折现及图例
plot时可以设置:
label,用于添加图例
linestyle,
marker,标记,^,>,<,v,o等等
linewidth
color,可以输单词,和颜色代码(16进制,百度搜)
alpha,透明度,0-1
from matplotlib import pyplot as plt
import matplotlib.font_manager as fm
my_font = fm.FontProperties(fname='C:/Windows/Fonts/msyh.ttc')
#数据
x = range(11,31)
y1 = [1,0,1,1,2,4,3,4,4,5,6,5,4,3,3,1,1,1,1,1]
y2 = [3,1,2,3,1,7,4,4,3,7,7,6,5,1,1,1,1,1,1,1]
#绘图
plt.plot(x,y1,label ='自己',color = '#930000',linestyle = ':',marker = '^')
plt.plot(x,y2,label= '同桌',color = 'cyan',linestyle = '--')
#设置x轴
x_lable = ['{0}岁'.format(i) for i in x]
plt.xticks(x,x_lable,rotation = 45,fontproperties = my_font)
plt.xlabel('年龄',fontproperties = my_font)
plt.ylabel('个数',fontproperties = my_font)
plt.title('11到30岁女朋友个数(我和同桌)',fontproperties = my_font)
#绘制网格
plt.grid(alpha = 0.1) #alpha设置透明度,0-1
#添加图例
plt.legend(prop = my_font,loc = 'upper right')
plt.show()