matplotlib学习笔记8.对轴的操作

这篇博客介绍了如何使用matplotlib库对Python数据可视化进行高级定制,包括隐藏轴、调整spines、解决刻度标签过长问题以及设置图例的位置和样式。示例代码展示了如何控制轴的可见性、旋转标签以避免重叠,并演示了不同图例布局的实现。通过这些技巧,可以更有效地呈现和美化数据图表。
摘要由CSDN通过智能技术生成
import numpy as np
import matplotlib.pyplot as plt
# 不用打imshow也能显示
%matplotlib inline 
  • 设置轴是否可见
x = [np.random.normal(0,std,100) for std in range(1,4)]
fig = plt.figure(figsize=(8,6))
# notch是否使用特别形状,sym离群点用什么表示,vert表示竖着画还是横着画
plt.boxplot(x,notch=False,sym='s',vert=True)

# 设置x,y轴是否可见
fig = plt.gca()
fig.axes.get_xaxis().set_visible(False)
fig.axes.get_yaxis().set_visible(False)

请添加图片描述

  • 设置spines是否可见
x = [np.random.normal(0,std,100) for std in range(1,4)]
fig = plt.figure(figsize=(8,6))
# notch是否使用特别形状,sym离群点用什么表示,vert表示竖着画还是横着画
plt.boxplot(x,notch=False,sym='s',vert=True)

# 设置x,y轴是否可见
fig = plt.gca()
fig.axes.get_xaxis().set_visible(False)
# fig.axes.get_yaxis().set_visible(False) # 它可以去掉下图的刻度
fig.axes.spines['top'].set_visible(False)
fig.axes.spines['right'].set_visible(False)
fig.axes.spines['left'].set_visible(False)
plt.grid(True)

请添加图片描述

  • 刻度label太长的解决办法
x = range(30)
y = range(30)
labels = ['xxxxxxxxxx' for i in range(len(x))]
fig = plt.figure(figsize=(4,2))
plt.plot(x,y)
fig = plt.gca()
fig.set_xticklabels(labels)
[Text(0,0,'xxxxxxxxxx'),
 Text(0,0,'xxxxxxxxxx'),
 Text(0,0,'xxxxxxxxxx'),
 Text(0,0,'xxxxxxxxxx'),
 Text(0,0,'xxxxxxxxxx'),
 Text(0,0,'xxxxxxxxxx'),
 Text(0,0,'xxxxxxxxxx'),
 Text(0,0,'xxxxxxxxxx'),
 Text(0,0,'xxxxxxxxxx')]

请添加图片描述

x = range(30)
y = range(30)
labels = ['xxxxxxxxxx' for i in range(len(x))]
fig = plt.figure(figsize=(4,2))
plt.plot(x,y)
fig = plt.gca()
# 设置旋转和对齐
fig.set_xticklabels(labels, rotation=45, horizontalalignment='right')
[Text(0,0,'xxxxxxxxxx'),
 Text(0,0,'xxxxxxxxxx'),
 Text(0,0,'xxxxxxxxxx'),
 Text(0,0,'xxxxxxxxxx'),
 Text(0,0,'xxxxxxxxxx'),
 Text(0,0,'xxxxxxxxxx'),
 Text(0,0,'xxxxxxxxxx'),
 Text(0,0,'xxxxxxxxxx'),
 Text(0,0,'xxxxxxxxxx')]

请添加图片描述

  • legend
x = np.arange(30)
y = np.arange(30)
for i in range(3):
    plt.plot(x,y*i,label='Group %d'%i)
# best是自动找最好的位置
plt.legend(loc='best')
<matplotlib.legend.Legend at 0x240b129dc18>

请添加图片描述

x = np.arange(30)
y = np.arange(30)
for i in range(3):
    plt.plot(x,y*i,label='Group %d'%i, marker='o')
# ncol表示legend3列, bbox那个参数是显示位置,framealpha透明度
plt.legend(loc='upper center', bbox_to_anchor=(0.5,1), ncol=3, framealpha=0.3)
<matplotlib.legend.Legend at 0x240b26bfd68>

请添加图片描述

对全局参数的操作

import matplotlib as mpl
mpl.rcParams['axes.titlesize'] = '10'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值