- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个地理数据框,其中日期为字符串,日期为 datetime64[ns]。我正在使用 matplotlib 3.0.2。我尝试使用 plt.cla()
、plt.clear()
和 plt.clf(
) 清除数据,如其他中所述帖子和问题,但无论如何,数据都会绘制出似乎是长轴和短轴格式的数据,而无需任何提示 - 假设在 plot_date
中,每月的第一天是“长”轴。 This is my graph (edited for clarity) 。这似乎是由 3.0.2(从 2.1.0 开始)的新更新引起的,很难弄清楚到底是什么原因造成的
我看到了这个question/answer这似乎符合我的问题的脉络,但在这种情况下,希望使用子日期等,而我很困惑,因为这对我来说在其他类似的数据集中并不是一个一致的问题。
Dataframe:
Date var_name
106 2018-04-03 0.79132056
216 2018-04-09 0.75112718
546 2018-06-12 0.73359674
646 2018-07-03 0.72600174
706 2018-07-23 0.71263647
figsize=(14,10)
fig, ax = plt.subplots(figsize=figsize)
data['Date'] = pd.to_datetime(data['Date'])
plt.xticks(rotation=30, ha='right')
plt.grid(color='k', lw=0.2)
plt.plot_date(data.Date, data.var_name)
更新
感谢 Jody 和 ImportanceOfBeingErnest 指出这是由 matplotlib 版本 3.0.2 中 kwargs 的更改引起的,该更改在 3.1 中得到修复,其中 interval_multiples=True
现在是绘制第一个的默认值除了其他刻度线之外的月份。 @ImportanceOfBeingErnest 是一位审阅者。
最佳答案
感谢@TheImportanceOfBeingErnest 和@JodyKlymak 的评论,建议使用AutoDateLocator
和MonthLocator
。以下代码片段最终成为我的解决方法。 Final figure
具有更多控制能力的方法:
figsize=(14,10)
fig, ax = plt.subplots(figsize=figsize)
data['Date'] = pd.to_datetime(data['Date'])
plt.xticks(rotation=30, ha='right')
plt.grid(color='k', lw=0.2)
months = matplotlib.dates.MonthLocator()
ax.xaxis.set_major_locator(months)
year_month = matplotlib.dates.DateFormatter('%Y-%m')
ax.xaxis.set_major_formatter(year_month)
plt.plot_date(data.Date, data.var_name)
仍然使用 AutoDateLocator 同时保留旧行为的方法:
locator = matplotlib.dates.AutoDateLocator(interval_multiples=False)
ax.xaxis.set_major_locator(locator)
关于python - 为什么 matplotlib.plot_date 中的第一个月自动绘制为刻度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54031757/
我想绘制垂直条而不是点。我拥有的实际数据是不规则间隔的,因此这将有助于更轻松地可视化间隙。当我尝试绘制它时,我能做的最好的就是点,它们不会随着放大而增加! import matplotlib from
我的数据存储为pandas数据框。我使用matplotlib中的plot_date()函数创建了一个日期(对象格式)与百分位数(int64格式)的图表,并想在预先指定的日期添加一些垂直线。 我已经设法
我正在使用: matplotlib '1.1.1rc' ipython 0.12.1 ipython notebook --pylab inline --no-browser 我生成一个图表: xti
我正在使用: matplotlib '1.1.1rc' ipython 0.12.1 ipython notebook --pylab inline --no-browser 我生成一个图表: xti
我正在尝试使用 plot_date 创建一个带有实线的图形。 from matplotlib.pyplot import show, plot_date plot_date(time_info, np
我目前正在尝试使用 matplotlibs plot_date 函数绘制多个日期图。我无法弄清楚的一件事是如何自动为每个图形分配不同的颜色(就像 plot 在 matplotlib 中设置 axes.
我有一些数据框: Date_Week Game_Order Game_Mode 0 2010-04-13 124 a 1 2010-06-29
我的数据如下所示: time distance color 1 2017-10-10 14:04:14 0.006 yellow 2 2017-10-1
我想绘制一个数据,其中 x 轴 具有日期时间值,另一组值作为 y。作为示例,我将使用 example来自 matplotlib,其中 y 在这种情况下是股票价格。这是相关代码。 import matp
我有一个地理数据框,其中日期为字符串,日期为 datetime64[ns]。我正在使用 matplotlib 3.0.2。我尝试使用 plt.cla()、plt.clear() 和 plt.clf()
import numpy as np import pandas as pan import matplotlib.pyplot as plt import matplotlib.dates as m
我有以下持续存在的问题: 下面的代码应该画一条直线: import numpy as np import pandas as pd import matplotlib.pyplot as plt d
对于大多数使用 matplotlib 的人来说,这可能真的是一个简单的问题。请帮帮我。我想在同一个图中绘制两个数组,如 [1,2,3,4] 和 [4,5,6,7] 与时间的关系。我正在尝试使用 mat
我正在使用 matplotlib 绘制一些数据,这些数据需要一段时间,因此我必须使用 plot_date 来绘制我的线条。但出于某种原因,就连接线而言,Plot_Date 和 Plot 具有完全不同的
我想像这样创建一个情节: 代码: P.fill_between(DF.start.index, DF.lwr, DF.upr, facecolor='blue', alpha=.2) P.plot
我正在使用 matplotlib 在 python 2.6 中根据时间戳绘制数据。我找到了 plot_date() 函数并且效果很好!但是,时间都是UTC。我阅读了文档,其中说您可以将 tz 参数传递
尝试使用 matplotlib.pyplot.plot_date 函数和源自 netCDF4.num2date 函数的日期时间对象来绘制数据时,出现以下错误: In [1]: from netCDF4
我是一名优秀的程序员,十分优秀!