【知识点】数据可视化——条形图与折线图的组合图

目录

一、问题描述

二、共用纵坐标的情况

三、各自坐标轴的情况

 四、延申——各种颜色的设置

1. 线条颜色

2. 折线线形

3. 数据点形状


一、问题描述

写论文时,需要将条形图与折线图画在一起,有时候他们共用同一个纵坐标、有时是分开的。这两种情况分别如何处理?


二、共用纵坐标的情况

代码:

import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator

#显示中文
from pylab import *
mpl.rcParams['font.sans-serif']=['SimHei']

# 生成数据
'''
y = []
for i in range(200):
    yi = np.random.uniform(0, 1)
    yi = format(yi, '.3f')
    y.append(yi)
y = np.array(y)
'''

'''生成数据'''
y = np.random.randint(1, 100, size=200)
y1 = y * 0.1
x = np.array(range(200))

'''第一张条形图'''
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.bar(x, y, 0.6, label='close', color='royalblue')
ax1.set_xlabel('number') #x轴标签
ax1.set_ylabel('损失负荷占比')  #y轴标签
ax1.set_title('损失负荷占比图')  #标题
#把y轴的主刻度设置为10的倍数
ax1.set_xlim(0, 200)
#把x轴的刻度范围设置为-0.5到11,因为0.5不满一个刻度间隔,所以数字不会显示出来,但是能看到一点空白
ax1.set_ylim(0, 120)
#把y轴的刻度范围设置为-5到110,同理,-5不会标出来,但是能看到一点空白


x_major_locator=MultipleLocator(50)
#把x轴的刻度间隔设置为1,并存在变量里
y_major_locator=MultipleLocator(20)
#把y轴的刻度间隔设置为10,并存在变量里
ax=plt.gca()
#ax为两条坐标轴的实例
ax.xaxis.set_major_locator(x_major_locator)
#把x轴的主刻度设置为1的倍数
ax.yaxis.set_major_locator(y_major_locator)

'''第二章折线图'''
#ax2 = ax1.twinx() #有两个坐标轴
ax2 = ax1 #共用一个坐标轴
ax2.plot(x, y1, linewidth=0.6, color='lightcoral')
ax2.scatter(x, y1, s=1.0, color='red')

plt.show()

注意:

这一步其实没有必要再有一个ax2,直接用一个ax1即可。

结果:

 


三、各自坐标轴的情况

代码:

import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator

#显示中文
from pylab import *
mpl.rcParams['font.sans-serif']=['SimHei']

# 生成数据
'''
y = []
for i in range(200):
    yi = np.random.uniform(0, 1)
    yi = format(yi, '.3f')
    y.append(yi)
y = np.array(y)
'''

'''生成数据'''
y = np.random.randint(1, 100, size=200)
y1 = y * 0.1
x = np.array(range(200))

'''第一张条形图'''
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.bar(x, y, 0.6, label='close', color='royalblue')
ax1.set_xlabel('number') #x轴标签
ax1.set_ylabel('损失负荷占比')  #y轴标签
ax1.set_title('损失负荷占比图')  #标题
#把y轴的主刻度设置为10的倍数
ax1.set_xlim(0, 200)
#把x轴的刻度范围设置为-0.5到11,因为0.5不满一个刻度间隔,所以数字不会显示出来,但是能看到一点空白
ax1.set_ylim(0, 120)
#把y轴的刻度范围设置为-5到110,同理,-5不会标出来,但是能看到一点空白


x_major_locator=MultipleLocator(50)
#把x轴的刻度间隔设置为1,并存在变量里
y_major_locator=MultipleLocator(20)
#把y轴的刻度间隔设置为10,并存在变量里
ax=plt.gca()
#ax为两条坐标轴的实例
ax.xaxis.set_major_locator(x_major_locator)
#把x轴的主刻度设置为1的倍数
ax.yaxis.set_major_locator(y_major_locator)

'''第二章折线图'''
ax2 = ax1.twinx() #有两个坐标轴
#ax2 = ax1 #共用一个坐标轴
ax2.plot(x, y1, linewidth=0.6, color='lightcoral')
ax2.scatter(x, y1, s=1.0, color='red')

plt.show()

 结果:

注意:

两种情况的区别在这里:

具体用哪种,要因情况而定 


 四、延申——各种颜色的设置

1. 线条颜色

在这里插入图片描述

2. 折线线形

‘-’ :实线
‘-.’ :实虚线
‘–’:虚线
‘:’ :点虚线

3. 数据点形状

‘s’ : 方块状
‘o’ : 实心圆
‘^’ : 正三角形
‘v’ : 反正三角形
‘+’ : 加号
‘*’ : 星号
‘,’:点
‘x’ : x号
‘p’ : 五角星
‘1’ : 三脚架标记
‘2’ : 三脚架标记 

猜你喜欢

转载自blog.csdn.net/mzy20010420/article/details/127970855