-
Matplotlib数据可视化(2):三大容器对象与常用设置
In [2]:
from matplotlib import pyplot as plt
import matplotlib as mpl
import numpy as np
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 中文字体支持
In [3]:
fig = plt.figure(figsize=(4,2), facecolor='grey') # 创建figure
fig.add_axes((0,0,1,1)) # 必须添加axes后才能显示
plt.show()
In [4]:
fig = plt.figure(figsize=(4,2))
fig.set_facecolor('grey') # 设置前景色
plt.plot()
plt.show()
In [5]:
fig = plt.figure()
fig.set_size_inches(2,3) # 设置大小
plt.plot()
plt.show()
In [6]:
fig = plt.figure(figsize=(4,2))
fig.suptitle("figure title", color='red') # 设置figure标题
plt.plot()
plt.show()
In [7]:
fig = plt.figure(figsize=(4,2))
fig.text(0.5,0.5,"figure text",color='red') # 设置figure标题,前两个参数分别表示到左边框和上边框的百分比距离
plt.plot()
plt.show()
In [8]:
fig = plt.figure(figsize=(5,3))
axes = fig.add_axes((0,0,0.8,1))
x = np.linspace(0, 10, 1000)
line1, = axes.plot(x, np.sin(x)) # 注意,line1后面有个逗号,因为plot()方法返回值是一个列表
line2, = axes.plot(x, np.cos(x))
fig.legend([line1, line2],['sin', 'cos'])
plt.show()
In [9]:
fig, axes = plt.subplots(2,2,facecolor='grey')
fig.subplots_adjust(left=None, # 设置画图区域与figure上下左右边框的比例距离
bottom=None,
right=None,
top=None,
wspace=0.3, # 子图间水平方向距离
hspace=1) # 子图间垂直方向距离
plt.show()
In [10]:
fig1 = plt.figure(figsize=(4,2), facecolor='grey')
ax1 = plt.axes((0.1, 0.1, 0.8, 0.7), facecolor='green')
fig2 = plt.figure(figsize=(4,2), facecolor='yellow')
ax2 = plt.axes((0.1, 0.1, 0.8, 0.8), facecolor='red') # 这个axes将会被覆盖在下面
plt.show()
In [11]:
fig = plt.figure(figsize=(4,2), facecolor='grey')
ax1 = plt.axes((0.1, 0.1, 0.8, 0.8), facecolor='green')
ax2 = plt.axes((0.1, 0.1, 0.8, 0.7), facecolor='red') # 这个axes将会被覆盖在下面
plt.show()
In [12]:
fig = plt.figure(figsize=(4,2), facecolor='grey')
fig.add_axes((0.1, 0.1, 0.3, 0.7), facecolor='green') # 这个axes将会被覆盖在下面
fig.add_axes((0.5, 0.1, 0.3, 0.7), facecolor='red')
plt.show()
In [13]:
fig = plt.figure(figsize=(4,4), facecolor='grey')
ax1 = plt.subplot(221,facecolor='green')
ax2 = plt.subplot(224,facecolor='red')
plt.show()
In [14]:
fig, axes = plt.subplots(2,2,facecolor='grey')
fig.suptitle('figure title')
print(type(axes))
axes[0,0].set_facecolor('green')
axes[1,1].set_facecolor('red')
plt.show()
In [15]:
fig, axes = plt.subplots(2,2,sharex=True,sharey=True,facecolor='grey')
fig.suptitle('figure title')
axes[0,0].set_facecolor('green')
axes[1,1].set_facecolor('red')
plt.show()
In [16]:
fig = plt.figure(figsize=(4,4), facecolor='grey')
ax1 = fig.add_subplot(221,facecolor='green')
ax2 = fig.add_subplot(224,facecolor='red')
plt.show()
In [17]:
fig = plt.figure(facecolor='grey')
axes = fig.subplots(2,2)
axes[0, 0].set_facecolor('green')
axes[1, 1].set_facecolor('red')
plt.show()
In [18]:
fig = plt.figure(facecolor='grey')
fig.suptitle("figure 标题", color='red')
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)
ax1.set_title(' 图 1') # 设置标题
ax2.set_title(' 图 2')
plt.show()
In [19]:
fig = plt.figure(figsize=(5,3))
axes = fig.add_axes((0,0,0.8,1))
x = np.linspace(0, 10, 1000)
line1, = axes.plot(x, np.sin(x))
line2, = axes.plot(x, np.cos(x))
axes.legend([line1, line2],['正弦', '余弦'])
plt.show()
In [20]:
fig = plt.figure(figsize=(4,1))
axes = fig.add_axes((0,0,1,1))
axes.set_xlabel('x轴', fontsize=15)
axes.set_ylabel('y轴', fontsize=15, color='red')
plt.show()
In [21]:
fig = plt.figure(figsize=(6,2))
axes = fig.add_axes((0,0,0.8,1))
x = np.linspace(-3, 5, 1000)
line1, = axes.plot(x, np.sin(x))
axes.set_xlim((-3,5)) # 设置横坐标范围
axes.set_ylim((-3,3)) # 设置纵坐标范围
plt.show()
In [22]:
fig = plt.figure(figsize=(6,2))
axes = fig.add_axes((0,0,0.8,1))
x = np.linspace(-10, 10, 1000)
line1, = axes.plot(x, np.sin(x))
axes.set_xlim((-10,10)) # 设置横坐标范围
axes.set_ylim((-2,2)) # 设置纵坐标范围
axes.spines['right'].set_color('none') #隐藏掉右边框线
axes.spines['top'].set_color('none') #隐藏掉左边框线
plt.show()
In [23]:
fig = plt.figure(figsize=(6,2))
axes = fig.add_axes((0,0,0.8,1))
x = np.linspace(-10, 10, 1000)
line1, = axes.plot(x, np.sin(x))
axes.set_xlim((-10,10)) # 设置横坐标范围
axes.set_ylim((-2,2)) # 设置纵坐标范围
axes.grid(True)
plt.show()
In [24]:
fig = plt.figure(figsize=(6,2))
axes = fig.add_axes((0,0,0.8,1))
x = np.linspace(-10, 10, 1000)
line1, = axes.plot(x, np.sin(x))
axes.set_xlim((-10,10)) # 设置横坐标范围
axes.set_ylim((-2,2)) # 设置纵坐标范围
axes.grid(True)
axes.annotate('原点', xy=(0, 0), # xy是指向点的坐标
xytext=(2.5, -1.5), # xytext注释文字的坐标
arrowprops=dict(facecolor='red'))
plt.show()
In [25]:
fig = plt.figure(figsize=(4,2), facecolor='grey')
axes = fig.add_axes((0, 0,1,1))
# x轴
axes.get_xaxis().get_label().set_text('x axis')
axes.get_xaxis().get_label().set_color('red')
axes.get_xaxis().get_label().set_fontsize(16)
# y轴
axes.yaxis.get_label().set_text('y axis')
axes.yaxis.get_label().set_color('blue')
axes.yaxis.get_label().set_fontsize(16)
plt.show()
In [26]:
fig = plt.figure(figsize=(4,2), facecolor='grey')
axes = fig.add_axes((0, 0,1,1))
# 设置x轴刻度标签
for tl in axes.get_xaxis().get_ticklabels():
tl.set_color('red')
tl.set_rotation(45)
tl.set_fontsize(16)
plt.show()
In [27]:
import matplotlib.ticker as ticker
# Fixing random state for reproducibility
np.random.seed(19680801)
fig, ax = plt.subplots()
ax.plot(100*np.random.rand(20))
formatter = ticker.FormatStrFormatter('$%1.2f')
ax.yaxis.set_major_formatter(formatter)
for tick in ax.yaxis.get_major_ticks():
tick.label1.set_visible(False)
tick.label2.set_visible(True)
tick.label2.set_color('green')
plt.show()
In [28]:
fig = plt.figure(figsize=(6,2))
axes = fig.add_axes((0,0,0.8,1))
x = np.linspace(-10, 10, 1000)
line1, = axes.plot(x, np.sin(x))
axes.set_xlim((-10,10)) # 设置横坐标范围
axes.set_ylim((-2,2)) # 设置纵坐标范围
axes.spines['right'].set_color('none') #隐藏掉右边框线
axes.spines['top'].set_color('none') #隐藏掉左边框线
axes.xaxis.set_ticks_position('bottom') #设置坐标轴位置
axes.yaxis.set_ticks_position('left') #设置坐标轴位置
axes.spines['bottom'].set_position(('data', 0)) #绑定坐标轴位置,data为根据数据自己判断
axes.spines['left'].set_position(('data', 0))
plt.show()
最新更新
博克-定制图例
博克-注释和图例
Bokeh–添加小部件
向博克图添加标签
将交互式滑块添加到博克图
在 Bokeh 中添加按钮
谷歌、微软、Meta?谁才是 Python 最大的金
Objective-C语法之代码块(block)的使用
URL Encode
go语言写http踩得坑
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
[SQL Server]按照设定的周别的第一天算任意
Linux下定时自动备份Docker中所有SqlServer数
武装你的WEBAPI-OData入门
武装你的WEBAPI-OData便捷查询
武装你的WEBAPI-OData分页查询
武装你的WEBAPI-OData资源更新Delta
5. 武装你的WEBAPI-OData使用Endpoint 05-09
武装你的WEBAPI-OData之API版本管理
武装你的WEBAPI-OData常见问题
武装你的WEBAPI-OData聚合查询
OData WebAPI实践-OData与EDM
OData WebAPI实践-Non-EDM模式