我正在尝试使用ggplot(x=“order_date”、y="total_price")、data=data_构建一个地块,代码如下:
# Core Python Data Analysis
from numpy.core.defchararray import index
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Plotting
from plotnine import (
ggplot, aes,
geom_col, geom_line, geom_smooth,
facet_wrap,
scale_y_continuous, scale_x_datetime,
labs,
theme, theme_minimal, theme_matplotlib,
expand_limits,
element_text
)
sales_by_months = df[[ 'order_date', 'total_price' ]] \
.set_index('order_date') \
.resample(rule='MS') \
.aggregate(np.sum) \
.reset_index()
data_ = sales_by_months
ggplot(aes(x="order_date", y="total_price"), data=data_)我在这段代码之前安装了所有的库。我知道这个错误:
TypeError Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_28504\2472174790.py in <module>
----> 1 ggplot(aes(x="order_date", y="total_price"), data=data_)
TypeError: __init__() got multiple values for argument 'data'有人能帮我解决这个问题吗?或者告诉我为什么我会有这个错误?
WINDOW11,JUPYTER笔记本电脑,PYTHON3
发布于 2022-07-27 14:28:59
在默认情况下,传入ggplot的第一个参数是data (因为它在源代码中处于第一位,并且没有提供任何关键字),但随后传递另一个data参数(带有关键字)。这就是为什么会发生这样的错误。尝试为第一个参数指定关键字,即mapping。
另外,另一个不需要但有助于提高可读性和代码更直接的技巧是:将data参数放在第一位,然后将mapping放在第二位。
所以你应该知道:ggplot(data=data_, mapping=aes(x="order_date", y="total_price"))
https://stackoverflow.com/questions/73139563
复制相似问题