【发布时间】:2018-04-24 08:41:37
【问题描述】:
我迷失在 matplotlib 中使用的不同方法中。
我想创建一个颜色编码的散点图,旁边有一个颜色条,x 轴上有一个日期时间。
但根据我定义ax 的方式,我会遇到不同的错误。
以下是我的代码的核心:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
import matplotlib.cm as cm
import matplotlib.dates as mdates
#.....loading files etc.
norm = mcolors.Normalize(vmin=0,vmax=1000)
timerange = pd.date_range(start='2015-01-01', end='2016-01-01', freq='30D')
### PLOTTING
fig = plt.figure(figsize=(6.,5))
ax = fig.add_subplot(111)
for Af in Afiles:
for index, row in Af.iterrows():
time = pd.to_datetime(row['date'], format="%Y-%m-%d")
plt.scatter(time, row['A'], c=row['z'], norm=norm, cmap=colormap,edgecolor='k', lw=0.8, s=80)
plt.xticks(timerange, rotation=90)
ax.xaxis.set_major_formatter(mdates.DateFormatter("%d/%m/%Y"))
plt.xlabel('Time', fontsize=11, color='k')
clb = fig.colorbar(ax)
clb.ax.set_title('Value', y=-0.125, fontsize=11)
clb.ax.invert_yaxis()
fig.tight_layout()
这会产生AttributeError: 'AxesSubplot' object has no attribute 'autoscale_None'
但是如果我将我的ax 指定为散点图,以便我可以让我的颜色编码正常工作,那么我就会遇到轴格式化程序的问题。
改写ax = plt.scatter 会生成AttributeError: 'PathCollection' object has no attribute 'xaxis'。
我怎样才能同时拥有颜色条和格式化的轴刻度?
【问题讨论】:
标签: python pandas datetime matplotlib colorbar