from matplotlib import pyplot as plt
# import matplotlib.pyplot as plt
# 设置图片大小、清晰度
fig = plt.figure(figsize=(20, 8), dpi=80) # figsize设置图片大小;dpi: dot per inch像素,越大越清晰
# x轴和y轴的数据一起组成了所有要绘制出的坐标
# 分别是(2,15), (4,13), (6,14.5) ......
x = range(2, 26, 2) # 数据在x轴的位置,是一个可迭代对象。
y = [15, 13, 14.5, 17, 20, 25, 26, 26, 24, 22, 18, 15] # 数据在y轴的位置,是一个可迭代对象。
# 传入x和y,通过plot绘制出折线图
plt.plot(x, y)
# 此处可以调整x轴、y轴的刻度,详细见下面section
# 保存图片,可以储存为svg这种矢量图格式,放大不会有锯齿
plt.savefig("./sig_size.pnd")
# 在执行程序的时候展示图像
plt.show()
# 设置x轴的刻度
plt.xticks(x) # 间隔为2
"""
# 间隔为1
plt.xticks(range(2, 25))
# 间隔为0.5
_xtick_labels = [i/2 for i in range(4, 49)]
plt.xticks(_xtick_labels)
"""
# 设置y轴的刻度
plt.yticks(range(min(y), max(y)+1))
# 用字符串来绘制轴的单位
_x = list(x)[::10] # 取一个步长,防止轴单位过于密集
_xtick_labels = ["hello.{}".format(i) for i in _x]
plt.xticks(_x, _xtick_labels)
# 用字符串来绘制x轴10点00分 -- 11点59分
_xtick_labels = ["10点{}分".format(i) for i in range(60)]
_xtick_labels += ["11点{}分".format(i) for i in range(60)]
# 需要取步长使数字和字符串一一对应,数据的长度一样
plt.xticks(list(x)[::3], _xtick_labels[::3], rotation=270) # rotation逆时针旋转的角度
import matplotlib
# windws和linux设置字体的方式
# 方法一
font = {
'family' : 'MicroSoft YaHei',
'weight': 'bold',
'size': 'larger'}
matplotlib.rc("font",**font)
# 方法二
matplotlib.rc("font",family='MicroSoft YaHei',weight="bold")
# windows、linux和mac设置字体的方式
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc") # fname传入字体安装的位置
......
plt.xticks(list(x)[::3],_xtick_labels[::3],rotation=45,fontproperties=my_font)
# 沿用之前的设置
plt.xlabel("时间",fontproperties=my_font)
plt.ylabel("温度 单位(℃)",fontproperties=my_font)
plt.title("10点到12点每分钟的气温变化情况",fontproperties=my_font)
# 沿用之前的设置
# alpha设置网格的透明度:0~1,1是完全不透明
plt.grid(alpha=0.4)
假设大家在30岁的时候,根据自己的实际情况,统计出来了你和你同桌各自从11岁到30岁每年交的女(男)朋友的数量如列表a和b,请在一个图中绘制出该数据的折线图,以便比较自己和同桌20年间的差异,同时分析每年交女(男)朋友的数量走势
a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
b = [1,0,3,1,2,2,3,3,2,1 ,2,1,1,1,1,1,1,1,1,1]
要求:
y轴表示个数
x轴表示岁数,比如11岁,12岁等
# coding=utf-8
from matplotlib import pyplot as plt
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc")
y_1 = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
y_2 = [1,0,3,1,2,2,3,3,2,1 ,2,1,1,1,1,1,1,1,1,1]
x = range(11,31)
#设置图形大小
plt.figure(figsize=(20,8),dpi=80)
# 绘制图像名称、颜色
# color= 可以跟颜色名称、代号
# linestyle="--" 函数的画线会变成点
# plt.plot(x,y_1,label="自己",color="orange")
plt.plot(x,y_1,label="自己",color="#F08080")
plt.plot(x,y_2,label="同桌",color="#DB7093",linestyle="--")
#设置x轴刻度
_xtick_labels = ["{}岁".format(i) for i in x]
plt.xticks(x,_xtick_labels,fontproperties=my_font)
# plt.yticks(range(0,9))
#绘制网格
plt.grid(alpha=0.4,linestyle=':')
# 添加图例,每条线是干什么的
# prop=my_font:为了让图例显示中文,只有在这里是prop,其他地方都是fontproperties
# loc="upper left":把图例发那个刀右上角,可以用文字或者数字来设置
plt.legend(prop=my_font,loc="upper left")
plt.show()
plt.plot(
x,
y,
color = "r" # 线条颜色
linestyle = "--"# 线条风格
linewidth = 5 # 线条粗细
alpha = 0.5 # 透明度
)
折线图
,散点图
,柱状图
,直方图
,箱线图,饼图等折线图:以折线的上升或下降来表示统计数量的增减变化的统计图
直方图:由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据范围,纵轴表示分布情况。
条形图:排列在工作表的列或行中的数据可以绘制到条形图中。
散点图:用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。