matplotlib绘图
折线图
x = [1,2,3,4,5]
y = [1,2,3,4,5]
# 调用绘制线性图函数plot()
plt.plot(x,y,
c='b', # 线的颜色
linestyle=':', # 线的风格
linewidth=3, # 线的宽度
marker='o', # 标记点的样式
markerfacecolor='r', # 标记点的颜色
markersize=10, # 标记点的大小
alpha=0.7, # 图形的透明度
label="x=y" # 设置图例的label
)
plt.legend()
plt.show()
# numpy数据
y1 = np.random.random(6) # 第1条折线y轴
y2 = np.random.random(6) # 第2条折线y轴
x = np.arange(6) # 公用的x轴
plt.plot(x, y1, label='成都') # 绘制第1条折线图
plt.plot(x, y2, label='武汉') # 绘制第2条折线图
plt.legend(loc='best') # 显示折线
plt.title('各城市房价(单位:万)', fontsize=20) # 设置标题
index_name = ['1月', '2月', '3月', '4月', '5月', '6月'] # 设置刻度
plt.xticks(x,index_name) # 将x坐标刻度数值与字符对应
plt.show() # 显示图形
# 使用DataFrame数据
data_frame = pd.DataFrame({
'Python基础': np.random.randint(10, 100, 5),
'Python爬虫': np.random.randint(10, 100, 5),
'Python Web': np.random.randint(10, 100, 5),
})
plt.plot(data_frame, marker='o')
# 显示图例
plt.legend(data_frame, loc=2)
# 设置x轴刻度标签
plt.xticks([0, 1, 2, 3, 4], ['1月', '2月', '3月', '4月', '5月'])
plt.title('2022年课程购买人数')
plt.xlabel('月份')
plt.ylabel('购买人数')
# linewidth 设置网格的宽度
plt.grid()
# 显示图形
plt.show()
柱状图
x = [1,2,3,4,5]
index_name = ['星期一','星期二','星期三','星期四','星期五']
height = [2.5,3.5,4.6,5.7,6.8]
plt.bar(x,height,color='r')
plt.xticks(x,index_name)
plt.title('销售量(单位:万元)')
# 添加文字
for x,height in zip(x,height):
plt.text(x,height,height,ha='center',va='bottom')
plt.show()
叠加柱状图
plt.figure(figsize=(4,4),dpi=100) # 设置图像大小,dpi设置图像像素
x = [1,2,3,4,5]
index_name = ['星期一','星期二','星期三','星期四','星期五']
height1 = [2.5,3.5,4.6,5.7,6.8]
height2 = [2,3,4,5,6]
plt.bar(x,height1,color='r',label='python销量')
plt.bar(x,height2,bottom=height1,color='b',label='c语言销量')
plt.xticks(x,index_name)
plt.title('销售量(单位:万元)')
plt.legend() # 调用label
plt.show()
并列柱状图
plt.figure(figsize=(4,4),dpi=100) # 设置图像大小,dpi设置图像像素
x = np.arange(5)
index_name = ['星期一','星期二','星期三','星期四','星期五']
height1 = [2.5,3.5,4.6,5.7,6.8]
height2 = [2,3,4,5,6]
bar_width = 0.3
plt.bar(x,height1, bar_width,color='r',label='python销量')
plt.bar(x + bar_width,height2, bar_width, color='b',label='c语言销量')
plt.xticks(x+bar_width/2,index_name)
plt.title('销售量(单位:万元)')
plt.legend() # 调用label
plt.show()
水平柱状图(条形图)
plt.figure(figsize=(4,4),dpi=100)
y=[1,2,3,4,5]
index_name = ['python','c语言','c++','java','php']
plt.yticks(y,index_name)
width = [2.5,3.6,4.7,5.8,6.0]
plt.barh(y,width)
# 添加文字
for y,width in zip(y,width):
plt.text(width,y,width)
plt.show()
饼状图
plt.figure(figsize=(4,4),dpi=100)
labels = ['A','B','C','D','E']
x = [10,20,30.5,40.6,50.7]
explode = [0,0.1,0,0,0.1] # 突出某一部分
plt.pie(x,labels=labels,autopct='%.0f%%',explode=explode)
plt.show()
散点图
x = [1,2,3,4,5]
y = [1,2,3,4,5]
a = np.random.rand(10)
b = np.random.rand(10)
size1 = np.random.rand(5)*200
size2 = np.random.rand(10)*100
plt.scatter(x,y,color='y',s=size1)
plt.scatter(a,b,color='b',s=size2) #s的size大小必须与x,y的大小相匹配
plt.show()
直方图
x = [1,2,3,4,5,1.1,1.2,1.3]
plt.hist(x)
plt.show()
# 正态分布
data = np.random.normal(0,1,100000)
plt.hist(data,bins=200)
plt.show()