def use_defaults(self, data):
"""
Combine data with defaults and set aesthetics from parameters
geoms should not override this method.
Parameters
----------
data : pandas.DataFrame
Data used for drawing the geom.
Returns
-------
out : pandas.DataFrame
Data used for drawing the geom.
"""
missing_aes = (six.viewkeys(self.DEFAULT_AES) -
six.viewkeys(self.aes_params) -
set(data.columns))
# Not in data and not set, use default
for ae in missing_aes:
data[ae] = self.DEFAULT_AES[ae]
# If set, use it
for ae, value in self.aes_params.items():
try:
data[ae] = value
except ValueError:
# sniff out the special cases, like custom
# tupled linetypes, shapes and colors
if is_valid_aesthetic(value, ae):
data[ae] = [value]*len(data)
else:
msg = ("'{}' does not look like a "
"valid value for `{}`")
raise PlotnineError(msg.format(value, ae))
return data
评论列表
文章目录