我有以下代码来绘制直线和点:
df = pd.DataFrame({'x': [1, 2, 3], 'y': [3, 4, 6]})
point = pd.DataFrame({'x': [2], 'y': [5]})
ax = df.plot(x='x', y='y', label='line')
ax = point.plot(x='x', y='y', ax=ax, style='r-', label='point')
如何显示单个数据点?
答案 0 :(得分:65)
要绘制单个点,您可以执行以下操作:
plt.plot([x], [y], marker='o', markersize=3, color="red")
答案 1 :(得分:4)
绘制单个数据点时,无法使用线条绘图。当您考虑这一点时,这是显而易见的,因为在绘制线条时,您实际上在数据点之间绘制,因此如果您只有一个数据点,那么您没有任何东西可以将您的线路连接到。
您可以使用标记绘制单个数据点,这些点通常直接绘制在数据点上,因此如果您只有一个数据点则无关紧要。
目前您正在使用
ax = point.plot(x='x', y='y', ax=ax, style='r-', label='point')
情节。这会产生一条红线(红色为r
,线为-
。如果您使用以下代码,那么您将获得蓝色十字架(蓝色为b
,十字架为x
。
ax = point.plot(x='x', y='y', ax=ax, style='bx', label='point')
pandas
在内部使用matplotlib
进行绘图,您可以在表here中找到各种样式参数。要在不同的样式之间进行选择(例如,如果您有多个数据点时没有想要标记),那么您只需检查数据集的长度,然后使用适当的样式。
答案 2 :(得分:2)
使用plt.scatter(..)
方法时存在的另一个问题是传说用行和不显示点。
要解决此问题,我建议这样使用df = pd.DataFrame({'x': [1, 2, 3], 'y': [3, 4, 6]})
point = pd.DataFrame({'x': [2], 'y': [5]})
fig, axes = plt.subplots(1, 2, figsize=(20, 5))
# OP VERSION
df.plot('x', 'y', ax=axes[0], label='line')
point.plot('x', 'y', ax=axes[0], style='r-', label='point')
# MY VERSION
df.plot('x', 'y', ax=axes[1], label='line')
axes[1].scatter(point['x'], point['y'], marker='o', color='r', label='point')
axes[1].legend(loc='upper left')
:
FROM python:3.6.9
RUN wget https://s3.amazonaws.com/shopify-managemant-app/wkhtmltopdf-0.9.9-static-amd64.tar.bz2
RUN tar xvjf wkhtmltopdf-0.9.9-static-amd64.tar.bz2
RUN mv wkhtmltopdf-amd64 /usr/local/bin/wkhtmltopdf
RUN chmod +x /usr/local/bin/wkhtmltopdf
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
答案 3 :(得分:0)