返回 导航

Python

hangge.com

Python - Matplotlib绘图库使用详解2(网格、坐标轴、标题、双轴图)

作者:hangge | 2022-08-05 08:10

三、网格、坐标轴、标题、双轴图

1,网格格式

(1)使用 grid() 方法可以开启或者关闭画布中的网格:
import matplotlib.pyplot as plt
#开启网格
plt.grid()
#准备数据
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
#绘制柱状图
plt.bar(langs,students)
plt.show()

(2)grid() 函数还可以设置网格的颜色(color)、线型(ls)以及线宽(lw)等属性:
import matplotlib.pyplot as plt
#开启网格
plt.grid(color='r', ls = '-.', lw = 0.75)
#准备数据
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
#绘制柱状图
plt.bar(langs,students)
plt.show()

2,坐标轴格式

我们可以通过指定轴的颜色和宽度,从而对进行显示格式设置。如果将轴的颜色设置为 None,那么它便成为隐藏状态:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
#为左侧轴,底部轴添加颜色
ax.spines['bottom'].set_color('red')
ax.spines['left'].set_color('blue')
ax.spines['left'].set_linewidth(2)
#将右侧轴、顶部轴设置为None
ax.spines['right'].set_color(None)
ax.spines['top'].set_color(None)
#准备数据
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
#绘制柱状图
plt.bar(langs,students)
plt.show()

3,坐标轴范围  

    Matplotlib 可以根据自变量与因变量的取值范围,自动设置 x 轴与 y 轴的数值大小。我们也可以用自定义的方式,通过 set_xlim() set_ylim() xy 轴的数值范围进行设置。
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
#设置y轴
ax.set_ylim(0,100)
#设置x轴
ax.set_xlim(0,10)
#准备数据
x = [1,2,3,4,5]
y = [23,17,35,29,12]
#绘制柱状图
plt.bar(x,y)
plt.show()

4,标题文字

(1)我们可以通过 title() 方法设置整个图表的标题:
import matplotlib.pyplot as plt
#设置标题
plt.title("My Chart")
#准备数据
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
#绘制柱状图
plt.bar(langs,students)
plt.show()

(2)还可以通过 xlabel()ylabel() 方法来分别设置 x 轴、y 轴的标签:
import matplotlib.pyplot as plt
#设置标题
plt.title("My Chart")
#设置x轴标签
plt.xlabel("x axis")
#设置y轴标签
plt.ylabel("y axis")
#准备数据
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
#绘制柱状图
plt.bar(langs,students)
plt.show()

5,双轴图

    在一些应用场景中,有时需要绘制两个 x 轴或两个 y 轴,这样可以更直观地显现图像,从而获取更有效的数据。Matplotlib 提供的 twinx() twiny() 函数可以实现绘制双轴的功能。
import matplotlib.pyplot as plt
#创建图形对象
fig = plt.figure()
#添加子图区域
ax1 = fig.add_axes([0,0,1,1])
#准备数据
days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
temperature = [36.5, 37.3, 37.9, 39.2, 39.5, 40.8, 41.1]
humidity = [80.4, 80.2, 80.1, 79.9, 80.0, 80.1, 80.2]
#绘制温度曲线
ax1.plot(days, temperature, color='red', label='Temperature')
#添加双轴
ax2 = ax1.twinx()
#绘制相对湿度曲线
ax2.plot(days, humidity, color='blue', label='Humidity')
#设置y轴标签
ax1.set_ylabel('Temperature')
ax2.set_ylabel('Humidity')
#绘制图例
fig.legend(labels = ('Temperature','Humidity'),loc='upper right')
plt.show()
评论

全部评论(0)

回到顶部