1.主要分为4种:柱状图,直方图,散点图,饼状图
可视化的工具选择:可视化的Python软件包
工具的优点:可以自制图形定义功能
绘图程序步骤:
第一步导包中Pyplot模块,以as为别名引入包
from matplotlib import pyplot as plt
第二步引入numpy包
import numpy as np
第三步用函数arrange()建一组数据
获取-50到50之间的ndarray对象
x = np .arange(-50,51)
y = x ** 2
第三步:用plot ()绘制线性图表
plt.plot(x,y)
Matplotlib基本用法:
1.图表名称:plt.title()
2.把标题写成中文:
默认情况下,不显示中文
就要修改配置信息:plt.rcParams["font.sans-serif"]
rc:运行
代码如下:
# 设置图表名称plt.title()
#huizhitubiao轴获得-50到50之间的ndarray对象
huizhitubiao = np.arange(-50,50)
#y轴的值是huizhitubiao的平方
y = huizhitubiao **2
# 设置图名
plt.title("y = huizhitubiao^2")
#绘制图形
plt.plot(huizhitubiao,y)
图像如下:
字体总结:改2个配置信息 plt.rcParams['font.sans-serif'] = ['Simhei'] #用来设置字体样式用正常中文标签 plt.rcParams['axes.unicode_minus'] = False # 默认用Unicode负号,设置正常显示字符,
3.设置字体大小
#设置字体大小
#fontsize参数:设置字体大小
#linewidth参数:设置线条
#这参数就是再给x,y轴字体设置时,来起的
# x轴设置字体大小,直接写值就可以了
#建x为-10到10的整数
x = np.arange(-10,10) #不包含10
# y是x的平方
y = x ** 2
# 设置标题
plt.title('y =x^2 x取值范围为:[-10,10]',fontsize=16)
#设置x轴名称
plt.xlabel('x轴',fontsize=12)
#设置y轴名称
plt.ylabel('y轴')
#设置完后,再绘图
plt.plot(x,y)
图像如下:
4.设置负号
# 把字体默认改为中文时,负号就没有了
# 注意事项:当字体设置为中文后,必须设置负号,否则当数值中出现负值时,负号无法正常显示
# 因此,就要修改轴中的负号编码
plt.rcParams["axes.unicode_minus"] = False
# 建x为-10到10的整数
x = np.arange(-10,10)
# y是x的平方
y = x ** 2
# 设置标题
plt.title('y = x^2 x取值范围为:[-10,10]')
plt.plot(x,y)
图像如下:
5. 设置多个线条
# 设置多个线条
# 建x为-10到10的整数
plt.rcParams["axes.unicode_minus"] = False # 改轴中的负号编码
x = np.arange(-10,10)
# y1是x的平方
y1 = x ** 2
# y2 等于x
y2 = x
#设置标题
plt.title('y=x^2 x取值范围为:[-10,10)',fontsize=16) #fontsize:字体大小
#设置x轴名称
plt.xlabel("x 轴",fontsize=12)
#设置y轴名称
plt.ylabel("y 轴")
#绘图线条1
plt.plot(x,y1)
#绘图线条2
plt.plot(x,y2)
图像如下:
6. 图例
#图例 legend()
#图例是集中于地图一角或一侧的地图上各种符号和颜色所代表内容与指标说明,有助于更好的认识图形。
#每个时间点的销量绘图
shijian1 = ['2015/6/26','2015/3/8','2016/3/5','2016/8/9','2016/9/9','2016/10/10','2017/2/4',
'2017/5/6','2018/8/8','2019/3/6','2020/9/10']
# 随机收入
suijishou = np.random.randint(520,2000,size=len(shijian1))
# 收入就是520~2000之间,长度就是时间长度
# 支出
zhichu = np.random.randint(300,1500,size=len(shijian1))
#绘制图形
plt.xticks(range(1,len(shijian1),2),rotation=45)
# 在用图例前为每个图形设置label参数
plt.plot(shijian1,suijishou,label="收入") # label="收入"这就相当于给线起了一个名称,
# 然后就可以直接调用plt.legend()
plt.plot(shijian1,zhichu,label="支出") # label="支出"这就相当于给线起了一个名称,
# 默认会用每个图形的label值为图例中的说明
plt.legend()
图像如下:
7.元素可视性
显示网格
# 元素可视性
#显示网格
xianshiwangge = np.linspace(-np.pi,np.pi,256,endpoint=True)
xianshiwangge1,xianshiwangge2 = np.cos(xianshiwangge),np.sin(xianshiwangge)
plt.plot(xianshiwangge,xianshiwangge1) #x :跨行 y:跨列
plt.plot(xianshiwangge,xianshiwangge2)
# 通过数组建图表
#这是固定格式
plt.grid(True,linestyle="--",color="red",linewidth = "0.5",axis ='both')
plt.grid(True) # 这结果显示网格
图像如下:
8.移动下轴到指定的位置
# 对坐标轴的操作
jianshuzun= np.arange(-50,51)
y1pingfang = jianshuzun ** 2
plt.plot(jianshuzu,y1pingfang) # 坐标轴有4个柱子
#获取当前的坐标轴
dangqianzuobiaozhou =plt.gca() # gca=获取当前的坐标轴
# 通过坐标轴spines,确定top,bottom,left,right(分别标识上,下,左和右)
# 不需要右侧和上侧线条,则可以设置他的颜色
dangqianzuobiaozhou.spines['right'].set_color("none")
# 因为这是在原有的基础上进行对轴的操作,所以都是set什么什么
dangqianzuobiaozhou.spines['top'].set_color("none")
#移动下轴到指定的位置
# 移动用position位置参数有三种,data(),outward(向外-可自行尝试),axes
#data:第一个参数是那种方式来移动(只能左右移动) 第二个参数:移动的值
# axes:0.0-1.0之间的值,整个轴上的比例
dangqianzuobiaozhou.spines['left'].set_position(('data',0.0))
#dangqianzuobiaozhou.spines['left'].set_position(('axes',1))
#移动下轴到指定的位置
#'data'表示按数值挪动,其后面的数字代表挪动到Y轴的刻度值
dangqianzuobiaozhou.spines['bottom'].set_position(('data',0.0)) # bottom是指底部
# 设置坐标区间
plt.ylim(-1000,2500)
# 想要动态的,y.max
plt.plot(jianshuzun,y1pingfang)
图像如下: