主頁 > 軟體工程 > matplotlib日期刻度:列印“好”日期

matplotlib日期刻度:列印“好”日期

2022-01-17 16:44:04 軟體工程

我想控制日期標簽我正在遍歷資料的各個子集,有時會繪制很長的間隔,其中每 10 年打勾是合適的;有時更短的間隔,每 5 年或 2 年或 1 年打勾是合適的;有時繪制幾個月的間隔,其中月份標簽是合適的;有時是混合情況。我知道如何將我的日期轉換為字串并提取年份并手動制作標簽,但由于我的日期范圍不斷變化,我希望有一定程度的靈活性,并盡可能多地使用內置函式我嘗試使用這些matplotlib.dates功能:AutoDateLocator, ConciseDateFormatter, YearLocator, DateFormatter: 請參閱下面的恐怖博物館。我似乎缺少一些基本的東西。

在下面的示例中,默認日期標簽是 1949、1959 等,我想要 1950、1960 等,所以標簽的頻率很高,但開始日期不是。有沒有辦法讓所選年份成為 10 或 5 的倍數?

感謝指點!

默認圖

import matplotlib.pyplot as plt
import pandas as pd
from pandas import Timestamp
from numpy import nan

# Default plot:
f, ax = plt.subplots()
df.plot(ax=ax, x='Date')
plt.show()

matplotlib 日期刻度:列印“好”日期

# attempt 1
# https://matplotlib.org/stable/api/dates_api.html
from matplotlib.dates import YearLocator, DateFormatter
f, ax = plt.subplots()
df.plot(ax=ax, x='Date')
ax.xaxis.set_major_locator(YearLocator(10)) # <- ticks every 10 years
ax.xaxis.set_major_formatter(DateFormatter('%Y'))  # <- show only the year
plt.show()

matplotlib 日期刻度:列印“好”日期

# attempt 2
# https://matplotlib.org/stable/gallery/ticks/date_concise_formatter.html
from matplotlib.dates import AutoDateLocator, ConciseDateFormatter
f, ax = plt.subplots()
df.plot(ax=ax, x='Date')
locator = AutoDateLocator(minticks=4, maxticks=10)  # <- autodetect a good place to place ticks
ax.xaxis.set_major_locator(locator)
ax.xaxis.set_major_formatter(ConciseDateFormatter(locator))
plt.show() # <- Months appear where they shouldn't

matplotlib 日期刻度:列印“好”日期

資料:

data_dict = {'Date': {0: Timestamp('1946-01-01 00:00:00'), 1: Timestamp('1946-04-01 00:00:00'), 2: Timestamp('1946-07-01 00:00:00'), 3: Timestamp('1946-10-01 00:00:00'), 4: Timestamp('1947-01-01 00:00:00'), 5: Timestamp('1947-04-01 00:00:00'), 6: Timestamp('1947-07-01 00:00:00'), 7: Timestamp('1947-10-01 00:00:00'), 8: Timestamp('1948-01-01 00:00:00'), 9: Timestamp('1948-04-01 00:00:00'), 10: Timestamp('1948-07-01 00:00:00'), 11: Timestamp('1948-10-01 00:00:00'), 12: Timestamp('1949-01-01 00:00:00'), 13: Timestamp('1949-04-01 00:00:00'), 14: Timestamp('1949-07-01 00:00:00'), 15: Timestamp('1949-10-01 00:00:00'), 16: Timestamp('1950-01-01 00:00:00'), 17: Timestamp('1950-04-01 00:00:00'), 18: Timestamp('1950-07-01 00:00:00'), 19: Timestamp('1950-10-01 00:00:00'), 20: Timestamp('1951-01-01 00:00:00'), 21: Timestamp('1951-04-01 00:00:00'), 22: Timestamp('1951-07-01 00:00:00'), 23: Timestamp('1951-10-01 00:00:00'), 24: Timestamp('1952-01-01 00:00:00'), 25: Timestamp('1952-04-01 00:00:00'), 26: Timestamp('1952-07-01 00:00:00'), 27: Timestamp('1952-10-01 00:00:00'), 28: Timestamp('1953-01-01 00:00:00'), 29: Timestamp('1953-04-01 00:00:00'), 30: Timestamp('1953-07-01 00:00:00'), 31: Timestamp('1953-10-01 00:00:00'), 32: Timestamp('1954-01-01 00:00:00'), 33: Timestamp('1954-04-01 00:00:00'), 34: Timestamp('1954-07-01 00:00:00'), 35: Timestamp('1954-10-01 00:00:00'), 36: Timestamp('1955-01-01 00:00:00'), 37: Timestamp('1955-04-01 00:00:00'), 38: Timestamp('1955-07-01 00:00:00'), 39: Timestamp('1955-10-01 00:00:00'), 40: Timestamp('1956-01-01 00:00:00'), 41: Timestamp('1956-04-01 00:00:00'), 42: Timestamp('1956-07-01 00:00:00'), 43: Timestamp('1956-10-01 00:00:00'), 44: Timestamp('1957-01-01 00:00:00'), 45: Timestamp('1957-04-01 00:00:00'), 46: Timestamp('1957-07-01 00:00:00'), 47: Timestamp('1957-10-01 00:00:00'), 48: Timestamp('1958-01-01 00:00:00'), 49: Timestamp('1958-04-01 00:00:00'), 50: Timestamp('1958-07-01 00:00:00'), 51: Timestamp('1958-10-01 00:00:00'), 52: Timestamp('1959-01-01 00:00:00'), 53: Timestamp('1959-04-01 00:00:00'), 54: Timestamp('1959-07-01 00:00:00'), 55: Timestamp('1959-10-01 00:00:00'), 56: Timestamp('1960-01-01 00:00:00'), 57: Timestamp('1960-04-01 00:00:00'), 58: Timestamp('1960-07-01 00:00:00'), 59: Timestamp('1960-10-01 00:00:00'), 60: Timestamp('1961-01-01 00:00:00'), 61: Timestamp('1961-04-01 00:00:00'), 62: Timestamp('1961-07-01 00:00:00'), 63: Timestamp('1961-10-01 00:00:00'), 64: Timestamp('1962-01-01 00:00:00'), 65: Timestamp('1962-04-01 00:00:00'), 66: Timestamp('1962-07-01 00:00:00'), 67: Timestamp('1962-10-01 00:00:00'), 68: Timestamp('1963-01-01 00:00:00'), 69: Timestamp('1963-04-01 00:00:00'), 70: Timestamp('1963-07-01 00:00:00'), 71: Timestamp('1963-10-01 00:00:00'), 72: Timestamp('1964-01-01 00:00:00'), 73: Timestamp('1964-04-01 00:00:00'), 74: Timestamp('1964-07-01 00:00:00'), 75: Timestamp('1964-10-01 00:00:00'), 76: Timestamp('1965-01-01 00:00:00'), 77: Timestamp('1965-04-01 00:00:00'), 78: Timestamp('1965-07-01 00:00:00'), 79: Timestamp('1965-10-01 00:00:00'), 80: Timestamp('1966-01-01 00:00:00'), 81: Timestamp('1966-04-01 00:00:00'), 82: Timestamp('1966-07-01 00:00:00'), 83: Timestamp('1966-10-01 00:00:00'), 84: Timestamp('1967-01-01 00:00:00'), 85: Timestamp('1967-04-01 00:00:00'), 86: Timestamp('1967-07-01 00:00:00'), 87: Timestamp('1967-10-01 00:00:00'), 88: Timestamp('1968-01-01 00:00:00'), 89: Timestamp('1968-04-01 00:00:00'), 90: Timestamp('1968-07-01 00:00:00'), 91: Timestamp('1968-10-01 00:00:00'), 92: Timestamp('1969-01-01 00:00:00'), 93: Timestamp('1969-04-01 00:00:00'), 94: Timestamp('1969-07-01 00:00:00'), 95: Timestamp('1969-10-01 00:00:00'), 96: Timestamp('1970-01-01 00:00:00'), 97: Timestamp('1970-04-01 00:00:00'), 98: Timestamp('1970-07-01 00:00:00'), 99: Timestamp('1970-10-01 00:00:00'), 100: Timestamp('1971-01-01 00:00:00'), 101: Timestamp('1971-04-01 00:00:00'), 102: Timestamp('1971-07-01 00:00:00'), 103: Timestamp('1971-10-01 00:00:00'), 104: Timestamp('1972-01-01 00:00:00'), 105: Timestamp('1972-04-01 00:00:00'), 106: Timestamp('1972-07-01 00:00:00'), 107: Timestamp('1972-10-01 00:00:00'), 108: Timestamp('1973-01-01 00:00:00'), 109: Timestamp('1973-04-01 00:00:00'), 110: Timestamp('1973-07-01 00:00:00'), 111: Timestamp('1973-10-01 00:00:00'), 112: Timestamp('1974-01-01 00:00:00'), 113: Timestamp('1974-04-01 00:00:00'), 114: Timestamp('1974-07-01 00:00:00'), 115: Timestamp('1974-10-01 00:00:00'), 116: Timestamp('1975-01-01 00:00:00'), 117: Timestamp('1975-04-01 00:00:00'), 118: Timestamp('1975-07-01 00:00:00'), 119: Timestamp('1975-10-01 00:00:00'), 120: Timestamp('1976-01-01 00:00:00'), 121: Timestamp('1976-04-01 00:00:00'), 122: Timestamp('1976-07-01 00:00:00'), 123: Timestamp('1976-10-01 00:00:00'), 124: Timestamp('1977-01-01 00:00:00'), 125: Timestamp('1977-04-01 00:00:00'), 126: Timestamp('1977-07-01 00:00:00'), 127: Timestamp('1977-10-01 00:00:00'), 128: Timestamp('1978-01-01 00:00:00'), 129: Timestamp('1978-04-01 00:00:00'), 130: Timestamp('1978-07-01 00:00:00'), 131: Timestamp('1978-10-01 00:00:00'), 132: Timestamp('1979-01-01 00:00:00'), 133: Timestamp('1979-04-01 00:00:00'), 134: Timestamp('1979-07-01 00:00:00'), 135: Timestamp('1979-10-01 00:00:00'), 136: Timestamp('1980-01-01 00:00:00'), 137: Timestamp('1980-04-01 00:00:00'), 138: Timestamp('1980-07-01 00:00:00'), 139: Timestamp('1980-10-01 00:00:00'), 140: Timestamp('1981-01-01 00:00:00'), 141: Timestamp('1981-04-01 00:00:00'), 142: Timestamp('1981-07-01 00:00:00'), 143: Timestamp('1981-10-01 00:00:00'), 144: Timestamp('1982-01-01 00:00:00'), 145: Timestamp('1982-04-01 00:00:00'), 146: Timestamp('1982-07-01 00:00:00'), 147: Timestamp('1982-10-01 00:00:00'), 148: Timestamp('1983-01-01 00:00:00'), 149: Timestamp('1983-04-01 00:00:00'), 150: Timestamp('1983-07-01 00:00:00'), 151: Timestamp('1983-10-01 00:00:00'), 152: Timestamp('1984-01-01 00:00:00'), 153: Timestamp('1984-04-01 00:00:00'), 154: Timestamp('1984-07-01 00:00:00'), 155: Timestamp('1984-10-01 00:00:00'), 156: Timestamp('1985-01-01 00:00:00'), 157: Timestamp('1985-04-01 00:00:00'), 158: Timestamp('1985-07-01 00:00:00'), 159: Timestamp('1985-10-01 00:00:00'), 160: Timestamp('1986-01-01 00:00:00'), 161: Timestamp('1986-04-01 00:00:00'), 162: Timestamp('1986-07-01 00:00:00'), 163: Timestamp('1986-10-01 00:00:00'), 164: Timestamp('1987-01-01 00:00:00'), 165: Timestamp('1987-04-01 00:00:00'), 166: Timestamp('1987-07-01 00:00:00'), 167: Timestamp('1987-10-01 00:00:00'), 168: Timestamp('1988-01-01 00:00:00'), 169: Timestamp('1988-04-01 00:00:00'), 170: Timestamp('1988-07-01 00:00:00'), 171: Timestamp('1988-10-01 00:00:00'), 172: Timestamp('1989-01-01 00:00:00'), 173: Timestamp('1989-04-01 00:00:00'), 174: Timestamp('1989-07-01 00:00:00'), 175: Timestamp('1989-10-01 00:00:00'), 176: Timestamp('1990-01-01 00:00:00'), 177: Timestamp('1990-04-01 00:00:00'), 178: Timestamp('1990-07-01 00:00:00'), 179: Timestamp('1990-10-01 00:00:00'), 180: Timestamp('1991-01-01 00:00:00'), 181: Timestamp('1991-04-01 00:00:00'), 182: Timestamp('1991-07-01 00:00:00'), 183: Timestamp('1991-10-01 00:00:00'), 184: Timestamp('1992-01-01 00:00:00'), 185: Timestamp('1992-04-01 00:00:00'), 186: Timestamp('1992-07-01 00:00:00'), 187: Timestamp('1992-10-01 00:00:00'), 188: Timestamp('1993-01-01 00:00:00'), 189: Timestamp('1993-04-01 00:00:00'), 190: Timestamp('1993-07-01 00:00:00'), 191: Timestamp('1993-10-01 00:00:00'), 192: Timestamp('1994-01-01 00:00:00'), 193: Timestamp('1994-04-01 00:00:00'), 194: Timestamp('1994-07-01 00:00:00'), 195: Timestamp('1994-10-01 00:00:00'), 196: Timestamp('1995-01-01 00:00:00'), 197: Timestamp('1995-04-01 00:00:00'), 198: Timestamp('1995-07-01 00:00:00'), 199: Timestamp('1995-10-01 00:00:00'), 200: Timestamp('1996-01-01 00:00:00'), 201: Timestamp('1996-04-01 00:00:00'), 202: Timestamp('1996-07-01 00:00:00'), 203: Timestamp('1996-10-01 00:00:00'), 204: Timestamp('1997-01-01 00:00:00'), 205: Timestamp('1997-04-01 00:00:00'), 206: Timestamp('1997-07-01 00:00:00'), 207: Timestamp('1997-10-01 00:00:00'), 208: Timestamp('1998-01-01 00:00:00'), 209: Timestamp('1998-04-01 00:00:00'), 210: Timestamp('1998-07-01 00:00:00'), 211: Timestamp('1998-10-01 00:00:00'), 212: Timestamp('1999-01-01 00:00:00'), 213: Timestamp('1999-04-01 00:00:00'), 214: Timestamp('1999-07-01 00:00:00'), 215: Timestamp('1999-10-01 00:00:00'), 216: Timestamp('2000-01-01 00:00:00'), 217: Timestamp('2000-04-01 00:00:00'), 218: Timestamp('2000-07-01 00:00:00'), 219: Timestamp('2000-10-01 00:00:00'), 220: Timestamp('2001-01-01 00:00:00'), 221: Timestamp('2001-04-01 00:00:00'), 222: Timestamp('2001-07-01 00:00:00'), 223: Timestamp('2001-10-01 00:00:00'), 224: Timestamp('2002-01-01 00:00:00'), 225: Timestamp('2002-04-01 00:00:00'), 226: Timestamp('2002-07-01 00:00:00'), 227: Timestamp('2002-10-01 00:00:00'), 228: Timestamp('2003-01-01 00:00:00'), 229: Timestamp('2003-04-01 00:00:00'), 230: Timestamp('2003-07-01 00:00:00'), 231: Timestamp('2003-10-01 00:00:00'), 232: Timestamp('2004-01-01 00:00:00'), 233: Timestamp('2004-04-01 00:00:00'), 234: Timestamp('2004-07-01 00:00:00'), 235: Timestamp('2004-10-01 00:00:00'), 236: Timestamp('2005-01-01 00:00:00'), 237: Timestamp('2005-04-01 00:00:00'), 238: Timestamp('2005-07-01 00:00:00'), 239: Timestamp('2005-10-01 00:00:00'), 240: Timestamp('2006-01-01 00:00:00'), 241: Timestamp('2006-04-01 00:00:00'), 242: Timestamp('2006-07-01 00:00:00'), 243: Timestamp('2006-10-01 00:00:00'), 244: Timestamp('2007-01-01 00:00:00'), 245: Timestamp('2007-04-01 00:00:00'), 246: Timestamp('2007-07-01 00:00:00'), 247: Timestamp('2007-10-01 00:00:00'), 248: Timestamp('2008-01-01 00:00:00'), 249: Timestamp('2008-04-01 00:00:00'), 250: Timestamp('2008-07-01 00:00:00'), 251: Timestamp('2008-10-01 00:00:00'), 252: Timestamp('2009-01-01 00:00:00'), 253: Timestamp('2009-04-01 00:00:00'), 254: Timestamp('2009-07-01 00:00:00'), 255: Timestamp('2009-10-01 00:00:00'), 256: Timestamp('2010-01-01 00:00:00'), 257: Timestamp('2010-04-01 00:00:00'), 258: Timestamp('2010-07-01 00:00:00'), 259: Timestamp('2010-10-01 00:00:00'), 260: Timestamp('2011-01-01 00:00:00'), 261: Timestamp('2011-04-01 00:00:00'), 262: Timestamp('2011-07-01 00:00:00'), 263: Timestamp('2011-10-01 00:00:00'), 264: Timestamp('2012-01-01 00:00:00'), 265: Timestamp('2012-04-01 00:00:00'), 266: Timestamp('2012-07-01 00:00:00'), 267: Timestamp('2012-10-01 00:00:00'), 268: Timestamp('2013-01-01 00:00:00'), 269: Timestamp('2013-04-01 00:00:00'), 270: Timestamp('2013-07-01 00:00:00'), 271: Timestamp('2013-10-01 00:00:00'), 272: Timestamp('2014-01-01 00:00:00'), 273: Timestamp('2014-04-01 00:00:00'), 274: Timestamp('2014-07-01 00:00:00'), 275: Timestamp('2014-10-01 00:00:00'), 276: Timestamp('2015-01-01 00:00:00'), 277: Timestamp('2015-04-01 00:00:00'), 278: Timestamp('2015-07-01 00:00:00'), 279: Timestamp('2015-10-01 00:00:00'), 280: Timestamp('2016-01-01 00:00:00'), 281: Timestamp('2016-04-01 00:00:00'), 282: Timestamp('2016-07-01 00:00:00'), 283: Timestamp('2016-10-01 00:00:00'), 284: Timestamp('2017-01-01 00:00:00'), 285: Timestamp('2017-04-01 00:00:00'), 286: Timestamp('2017-07-01 00:00:00'), 287: Timestamp('2017-10-01 00:00:00'), 288: Timestamp('2018-01-01 00:00:00'), 289: Timestamp('2018-04-01 00:00:00'), 290: Timestamp('2018-07-01 00:00:00'), 291: Timestamp('2018-10-01 00:00:00'), 292: Timestamp('2019-01-01 00:00:00'), 293: Timestamp('2019-04-01 00:00:00'), 294: Timestamp('2019-07-01 00:00:00'), 295: Timestamp('2019-10-01 00:00:00'), 296: Timestamp('2020-01-01 00:00:00'), 297: Timestamp('2020-04-01 00:00:00'), 298: Timestamp('2020-07-01 00:00:00'), 299: Timestamp('2020-10-01 00:00:00'), 300: Timestamp('2021-01-01 00:00:00'), 301: Timestamp('2021-04-01 00:00:00'), 302: Timestamp('2021-07-01 00:00:00')}, 'Gross Domestic Product': {0: nan, 1: nan, 2: nan, 3: nan, 4: 243.164, 5: 245.968, 6: 249.585, 7: 259.745, 8: 265.742, 9: 272.567, 10: 279.196, 11: 280.366, 12: 275.034, 13: 271.351, 14: 272.889, 15: 270.627, 16: 280.828, 17: 290.383, 18: 308.153, 19: 319.945, 20: 336.0, 21: 344.09, 22: 351.385, 23: 356.178, 24: 359.82, 25: 361.03, 26: 367.701, 27: 380.812, 28: 387.98, 29: 391.749, 30: 391.171, 31: 385.97, 32: 385.345, 33: 386.121, 34: 390.996, 35: 399.734, 36: 413.073, 37: 421.532, 38: 430.221, 39: 437.092, 40: 439.746, 41: 446.01, 42: 451.191, 43: 460.463, 44: 469.779, 45: 472.025, 46: 479.49, 47: 474.864, 48: 467.54, 49: 471.978, 50: 485.841, 51: 499.555, 52: 510.33, 53: 522.653, 54: 525.034, 55: 528.6, 56: 542.648, 57: 541.08, 58: 545.604, 59: 540.197, 60: 545.018, 61: 555.545, 62: 567.664, 63: 580.612, 64: 594.013, 65: 600.366, 66: 609.027, 67: 612.28, 68: 621.672, 69: 629.752, 70: 644.444, 71: 653.938, 72: 669.822, 73: 678.674, 74: 692.031, 75: 697.319, 76: 717.79, 77: 730.191, 78: 749.323, 79: 771.857, 80: 795.734, 81: 804.981, 82: 819.638, 83: 833.302, 84: 844.17, 85: 848.983, 86: 865.233, 87: 881.439, 88: 909.387, 89: 934.344, 90: 950.825, 91: 968.03, 92: 993.337, 93: 1009.02, 94: 1029.956, 95: 1038.147, 96: 1051.2, 97: 1067.375, 98: 1086.059, 99: 1088.608, 100: 1135.156, 101: 1156.271, 102: 1177.675, 103: 1190.297, 104: 1230.609, 105: 1266.369, 106: 1290.566, 107: 1328.904, 108: 1377.49, 109: 1413.887, 110: 1433.838, 111: 1476.289, 112: 1491.209, 113: 1530.056, 114: 1560.026, 115: 1599.679, 116: 1616.116, 117: 1651.853, 118: 1709.82, 119: 1761.831, 120: 1820.487, 121: 1852.332, 122: 1886.558, 123: 1934.273, 124: 1988.648, 125: 2055.909, 126: 2118.473, 127: 2164.27, 128: 2202.76, 129: 2331.633, 130: 2395.053, 131: 2476.949, 132: 2526.61, 133: 2591.247, 134: 2667.565, 135: 2723.883, 136: 2789.842, 137: 2797.352, 138: 2856.483, 139: 2985.557, 140: 3124.206, 141: 3162.532, 142: 3260.609, 143: 3280.818, 144: 3274.302, 145: 3331.972, 146: 3366.322, 147: 3402.561, 148: 3473.413, 149: 3578.848, 150: 3689.179, 151: 3794.706, 152: 3908.054, 153: 4009.601, 154: 4084.25, 155: 4148.551, 156: 4230.168, 157: 4294.887, 158: 4386.773, 159: 4444.094, 160: 4507.894, 161: 4545.34, 162: 4607.669, 163: 4657.627, 164: 4722.156, 165: 4806.16, 166: 4884.555, 167: 5007.994, 168: 5073.372, 169: 5190.036, 170: 5282.835, 171: 5399.509, 172: 5511.253, 173: 5612.463, 174: 5695.365, 175: 5747.237, 176: 5872.701, 177: 5960.028, 178: 6015.116, 179: 6004.733, 180: 6035.178, 181: 6126.862, 182: 6205.937, 183: 6264.54, 184: 6363.102, 185: 6470.763, 186: 6566.641, 187: 6680.803, 188: 6729.459, 189: 6808.939, 190: 6882.098, 191: 7013.738, 192: 7115.652, 193: 7246.931, 194: 7331.075, 195: 7455.288, 196: 7522.289, 197: 7580.997, 198: 7683.125, 199: 7772.586, 200: 7868.468, 201: 8032.84, 202: 8131.408, 203: 8259.771, 204: 8362.655, 205: 8518.825, 206: 8662.823, 207: 8765.907, 208: 8866.48, 209: 8969.699, 210: 9121.097, 211: 9293.991, 212: 9411.682, 213: 9526.21, 214: 9686.626, 215: 9900.169, 216: 10002.179, 217: 10247.72, 218: 10318.165, 219: 10435.744, 220: 10470.231, 221: 10599.0, 222: 10598.02, 223: 10660.465, 224: 10783.5, 225: 10887.46, 226: 10984.04, 227: 11061.433, 228: 11174.129, 229: 11312.766, 230: 11566.669, 231: 11772.234, 232: 11923.447, 233: 12112.815, 234: 12305.307, 235: 12527.214, 236: 12767.286, 237: 12922.656, 238: 13142.642, 239: 13324.204, 240: 13599.16, 241: 13753.424, 242: 13870.188, 243: 14039.56, 244: 14215.651, 245: 14402.082, 246: 14564.117, 247: 14715.058, 248: 14706.538, 249: 14865.701, 250: 14898.999, 251: 14608.208, 252: 14430.901, 253: 14381.236, 254: 14448.882, 255: 14651.248, 256: 14764.611, 257: 14980.193, 258: 15141.605, 259: 15309.471, 260: 15351.444, 261: 15557.535, 262: 15647.681, 263: 15842.267, 264: 16068.824, 265: 16207.13, 266: 16319.54, 267: 16420.386, 268: 16629.05, 269: 16699.551, 270: 16911.068, 271: 17133.114, 272: 17144.281, 273: 17462.703, 274: 17743.227, 275: 17852.54, 276: 17991.348, 277: 18193.707, 278: 18306.96, 279: 18332.079, 280: 18425.306, 281: 18611.617, 282: 18775.459, 283: 18968.041, 284: 19153.912, 285: 19322.92, 286: 19558.693, 287: 19882.965, 288: 20143.716, 289: 20492.492, 290: 20659.102, 291: 20813.325, 292: 21001.591, 293: 21289.268, 294: 21505.012, 295: 21694.458, 296: 21481.367, 297: 19477.444, 298: 21138.574, 299: 21477.597, 300: 22038.226, 301: 22740.959, 302: 23202.344}}

df = pd.DataFrame(data_dict)

當我回圈時,我會訪問像df.loc[(df['Date'] >= "2019") & (df['Date'] <= "2021")].

uj5u.com熱心網友回復:

我會回答我自己的問題來解決這個問題。答案基于紳士MrFuppes的建議。

要重新控制刻度位置和刻度標簽格式,在使用pandas繪圖包裝器時,需要設定x_compat=True. 這是因為包裝器在后臺用s 和spandas做了很多作業在大多數情況下,它做得很好,但如果你想要更多的特殊控制,你需要訪問的定位器和格式化程式。以下是實作所需結果的一種方法。locatorformatterpandasmatplotlib

from matplotlib.dates import YearLocator, DateFormatter
f, ax = plt.subplots()
df.plot(ax=ax, x='Date', x_compat=True)
ax.xaxis.set_major_locator(YearLocator(10))
ax.xaxis.set_major_formatter(DateFormatter("%Y"))
ax.xaxis.set_tick_params(rotation=0)
plt.show() 

matplotlib 日期刻度:列印“好”日期

如果時間范圍更短,則可能的自定義(與默認設定沒有太大區別pandas)如下:

from matplotlib.dates import YearLocator, MonthLocator, DateFormatter
f, ax = plt.subplots()
df.plot(ax=ax, x='Date', x_compat=True)
ax.xaxis.set_major_locator(YearLocator(1))
ax.xaxis.set_major_formatter(DateFormatter("%b\n%Y"))
ax.xaxis.set_tick_params(rotation=0)
ax.xaxis.set_minor_locator(MonthLocator(7))
ax.xaxis.set_minor_formatter(DateFormatter("%b"))
ax.xaxis.set_label_text('')
plt.show() 

matplotlib 日期刻度:列印“好”日期

我也成功地將千位分隔符添加到 y 軸:

from matplotlib.ticker import FuncFormatter
ax.yaxis.set_minor_formatter(FuncFormatter(lambda x, pos: format(int(x), ',')))

.set_major_formatter視情況而定。

但這顯然已經不在話題范圍內了。

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/412873.html

標籤:

上一篇:SQLServer:日期時間到INT

下一篇:devops起源的各種ops概念

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • Git本地庫既關聯GitHub又關聯Gitee

    創建代碼倉庫 使用gitee舉例(github和gitee差不多) 1.在gitee右上角點擊+,選擇新建倉庫 ? 2.選擇填寫倉庫資訊,然后進行創建 ? 3.服務端已經準備好了,本地開始作準備 (1)Git 全域設定 git config --global user.name "成鈺" git c ......

    uj5u.com 2020-09-10 05:04:14 more
  • CODING DevOps 代碼質量實戰系列第二課,相約周三

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。**《DevOps 代碼質量實戰(PHP 版)》**為 CODING DevOps 代碼質量實戰系列的第二課,同時也是本系列的 PHP ......

    uj5u.com 2020-09-10 05:07:43 more
  • 推薦Scrum書籍

    推薦Scrum書籍 直接上干貨,推薦書籍清單如下(推薦有順序的哦) Scrum指南 Scrum精髓 Scrum敏捷軟體開發 Scrum捷徑 硝煙中的Scrum和XP : 我們如何實施Scrum 敏捷軟體開發:Scrum實戰指南 Scrum要素 大規模Scrum:大規模敏捷組織的設計 用戶故事地圖 用 ......

    uj5u.com 2020-09-10 05:07:45 more
  • CODING DevOps 代碼質量實戰系列最后一課,周四發車

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。 **《DevOps 代碼質量實戰(Java 版)》**為 CODING DevOps 代碼質量實戰系列的最后一課,同時也是本系列的 ......

    uj5u.com 2020-09-10 05:07:52 more
  • 敏捷軟體工程實踐書籍

    Scrum轉型想要做好,第一步先了解并真正落實Scrum,那么我推薦的Scrum書籍是要看懂并實踐的。第二步是團隊的工程實踐要做扎實。 下面推薦工程實踐書單: 重構:改善既有代碼的設計 決議極限編程 : 擁抱變化 代碼整潔代碼 程式員的職業素養 修改代碼的藝術 撰寫可讀代碼的藝術 測驗驅動開發 : ......

    uj5u.com 2020-09-10 05:07:55 more
  • Jenkins+svn+nginx實作windows環境自動部署vue前端專案

    前面文章介紹了Jenkins+svn+tomcat實作自動化部署,現在終于有空抽時間出來寫下Jenkins+svn+nginx實作自動部署vue前端專案。 jenkins的安裝和配置已經在前面文章進行介紹,下面介紹實作vue前端專案需要進行的哪些額外的步驟。 注意:在安裝jenkins和nginx的 ......

    uj5u.com 2020-09-10 05:08:49 more
  • CODING DevOps 微服務專案實戰系列第一課,明天等你

    CODING DevOps 微服務專案實戰系列第一課**《DevOps 微服務專案實戰:DevOps 初體驗》**將由 CODING DevOps 開發工程師 王寬老師 向大家介紹 DevOps 的基本理念,并探討為什么現代開發活動需要 DevOps,同時將以 eShopOnContainers 項 ......

    uj5u.com 2020-09-10 05:09:14 more
  • CODING DevOps 微服務專案實戰系列第二課來啦!

    近年來,工程專案的結構越來越復雜,需要接入合適的持續集成流水線形式,才能滿足更多變的需求,那么如何優雅地使用 CI 能力提升生產效率呢?CODING DevOps 微服務專案實戰系列第二課 《DevOps 微服務專案實戰:CI 進階用法》 將由 CODING DevOps 全堆疊工程師 何晨哲老師 向 ......

    uj5u.com 2020-09-10 05:09:33 more
  • CODING DevOps 微服務專案實戰系列最后一課,周四開講!

    隨著軟體工程越來越復雜化,如何在 Kubernetes 集群進行灰度發布成為了生產部署的”必修課“,而如何實作安全可控、自動化的灰度發布也成為了持續部署重點關注的問題。CODING DevOps 微服務專案實戰系列最后一課:**《DevOps 微服務專案實戰:基于 Nginx-ingress 的自動 ......

    uj5u.com 2020-09-10 05:10:00 more
  • CODING 儀表盤功能正式推出,實作作業資料可視化!

    CODING 儀表盤功能現已正式推出!該功能旨在用一張張統計卡片的形式,統計并展示使用 CODING 中所產生的資料。這意味著無需額外的設定,就可以收集歸納寶貴的作業資料并予之量化分析。這些海量的資料皆會以圖表或串列的方式躍然紙上,方便團隊成員隨時查看各專案的進度、狀態和指標,云端協作迎來真正意義上 ......

    uj5u.com 2020-09-10 05:11:01 more
最新发布
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:41:12 more
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:35:34 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:05:44 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:00:18 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:20:31 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:55 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:18:51 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:00 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:17:55 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:12:06 more