python数据可视化基本操作(1)
matplotlib基础绘图
首先绘制的是折线图
from matplotlib import pyplot as plt
x=range(2,26,2) # 从2开始到24生成等差数列,步长为2
y = [15,13,14.5,17,28,25,26,26,24,22,18,15]
#x轴和y轴对应位置的数字组成的坐标就是要绘制的点
# 设置图片大小
fig=plt.figure(figsize=(20,8),dpi=80)
# figsize表示的绘图的大小,里面的参数表示长度和宽度
# 当图形比较模糊的时候,考虑传入dpi参数,让图片更加清晰
plt.plot(x,y) # 传入x和y,通过plot绘制出折线图
# 设置x轴的刻度
plt.xticks(range(2,25)) # 如果括号里是x则表示显示x中的所有刻度
# 可以手动设置x轴1的刻度范围,和密集程度
# 更密集
# _xticks_labels=[i/2 for i in range(2,49)]
# plt.xticks(_xticks_labels)
# 如果想要刻度稀疏一些,只需在_xticks_labels里传如一个参数
# plt.xticks(_xticks_labels[::3]) # 就是对_xticks_labels
#序列每隔3个取一个。
# 调整y轴的刻度
plt.yticks(range(min(y),max(y))) # 括号里填y就对应y原本的刻度
# 调整方法和y轴是一样的
# 保存图片
#plt.savefig("C:\\Users\\wgw\Desktop\\pytest.svg")
# 将生成的图片保存为svg格式的矢量图,也可以是png;jpg
plt.show() # 在程序执行后展示图形
![折线图](https://i-blog.csdnimg.cn/blog_migrate/a4bfc690ad3cad71316df96985a9d041.png)
如果列表a表示10点到12点的每一分钟的气温,如何绘制折线图观察每分钟气温的变化情况?
import random
from matplotlib import pyplot as plt
x=range(0,120)
y=[random.randint(20,35) for i in range(120)]
fig=plt.figure(figsize=(28,10),dpi=80)
plt.xticks(range(0,121))
plt.yticks(range(20,36))
plt.plot(x,y)
plt.show()
![气温变化折线图](https://i-blog.csdnimg.cn/blog_migrate/bf7938848229c689ad7f6ec5436ad868.png)
设置中文及坐标刻度
将x轴的刻度设置成时间类型的字符串,以及在图表中显示中文,中文设置参考了csdn博客[1]
import random
import matplotlib
from matplotlib import pyplot as plt
# 设置matplotlib正常显示中文和负号
matplotlib.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文
matplotlib.rcParams['axes.unicode_minus']=False # 正常显示负号
x=range(0,120)
y=[random.randint(20,35) for i in range(120)]
fig=plt.figure(figsize=(40,10),dpi=80)
# 调整x的刻度
_xticks_labels=["10点{}分".format(i) for i in range(60)]
_xticks_labels+=['11点{}分'.format(i) for i in range(60)]
plt.xticks(list(x)[::3],_xticks_labels[::3],rotation=90)
# rotation表示旋转的角度
plt.yticks(range(20,36))
plt.plot(x,y)
plt.show()
![image-20220910144457381](https://i-blog.csdnimg.cn/blog_migrate/f814fe9e344e7e9080912c3e7a3dd712.png)
上面所用的方法是作用在全局范围的,将所有字体都设置为黑体,如果相对图表中的不同部分采用个性化设置,可以用'FontProperties'
设置。例如:
from matplotlib.font_manager import FontProperties
font1 = FontProperties(fname=r"c:\windows\fonts\simsun.ttc")
font2 = FontProperties(f