Python的 matplotlib画图,怎么把子图的每个横坐标显示出来?

Python的 matplotlib画图,怎么把子图的每个横坐标显示出来?,第1张

ax = subplots(nrows,ncols,sharex,sharey,squeeze,subplot_kw,gridspec_kw,**fig_kw)  

创建画布和子图。

nrowsncols表示将画布分割成几行几列 ,

sharexsharey表是共用xy轴的设置。

squeeze  bool

a.默认参数为True:额外的维度从返回的Axes(轴)对象中挤出,对于N*1或1*N个子图,返回一个1维数组,对于N*M,N>1和M>1返回一个2维数组。

b.为False,不进行挤压 *** 作:返回一个元素为Axes实例的2维数组,即使它最终是1x1。

subplot_kw:字典类型,可选参数。把字典的关键字传递给add_subplot()来创建每个子图。

subplot_kw:字典类型,可选参数。把字典的关键字传递给add_subplot()来创建每个子图。

gridspec_kw:字典类型,可选参数。把字典的关键字传递给GridSpec构造函数创建子图放在网格里(grid)。

**fig_kw:把所有详细的关键字参数传给figure()函数。

可见你没有办法单独设置某个子图的ax的。

1. 前言

当日期数据作为图表的坐标轴时通常需要特殊处理,应为日期字符串比较长,容易产生重叠现象

2. 设定主/次刻度

2.1 引用库

from matplotlib.dates import DateFormatter, WeekdayLocator, DayLocator, MONDAY,YEARLY1

2.2 获取每月/周/日数据

获取每月一日数据

monthdays = MonthLocator()1

获取每周一的日期数据

mondays = WeekdayLocator(MONDAY)            # 主要刻度12

获取每日数据

alldays = DayLocator()                      # 次要刻度12

2.3 设定主/次刻度

ax.xaxis.set_major_locator(mondays)

ax.xaxis.set_minor_locator(alldays)12

2.4 设定格式

mondayFormatter = DateFormatter('%Y-%m-%d') # 如:2-29-2015

dayFormatter = DateFormatter('%d')          # 如:12

ax.xaxis.set_major_formatter(mondayFormatter)1234

3. 字符串旋转

for label in ax1.get_xticklabels():        label.set_rotation(30)        label.set_horizontalalignment('right')123

4. 效果

最简单的柱状代码应该是这样的

# coding: utf-8

import matplotlib.pyplot as plt

import numpy as np

x = np.random.randint(0, 10, size=10)

y = np.random.randint(100, 1000, size=10)

plt.bar(x, y)

plt.show()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11575600.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存