python-3.x - Pandas 和 Matplotlib:添加工具提示以进行交互
问题描述
我正在尝试向图表添加工具提示,因此每当我们将鼠标悬停在图表上时,它都会提供信息。我如何添加一个并使其成为交互式的?
import matplotlib.pyplot as plt
import pandas as pd
import pandas as pd
from numpy import nan
from matplotlib import dates as mpl_dates
df = dataset
df["Date"] = pd.to_datetime(df["Date"]).dt.strftime('%m/%d/%Y')
#df["Date"] = pd.to_datetime(df["Date"]).apply(lambda x: x.strftime('%B-%Y'))
df.loc[df['Actuals'] == 0, ['Actuals']] = nan
df.loc[df['Actuals'] > 0, ['Predicted_Lower']] = nan
df.loc[df['Actuals'] > 0, ['Predicted_Upper']] = nan
# gca stands for 'get current axis'
ax = plt.gca()
y1 = df['Predicted_Lower']
y2 = df['Predicted_Upper']
x = df['Date']
ax.fill_between(x,y1, y2, facecolor="blue", alpha=0.7)
df.plot(kind='line',x='Date',y='Predicted', color='black', ax=ax)
df.plot(kind='line',x='Date',y='Actuals', color='green', ax=ax)
df.plot(kind='line',x='Date',y='Predicted_Lower',color='white',ax=ax)
df.plot(kind='line',x='Date',y='Predicted_Upper',color='white', ax=ax)
date_format = mpl_dates.DateFormatter('%Y-%m-%d')
plt.gca().xaxis.set_major_formatter(date_format)
locs, labels = plt.xticks()
plt.xticks(locs[::3], labels[::3], rotation=45)
plt.show()
plt.xticks(rotation=45)
plt.legend(['Predicted','Actuals'])
plt.xlabel('Date')
df.head(30)
plt.show()
使用 pandas、matplotlib,我从连接到 Power BI 的 sql server 获取数据并编写 pyscripts 来显示图形。
解决方案
可以使用这里讨论的 matplotlib 。
但是,您可能想查看其他绘图包,例如它内置的 plotly,默认行为。
import plotly.express as px
df = pd.DataFrame(np.arange(20), columns=['x'])
df['y'] = df['x']**2
px.line(df, x='x', y='y')
在您的示例中,您可以尝试类似
px.line(df, x='Date', y=Predicted, ...)
推荐阅读
- google-cloud-storage - Google Cloud Storage 中的列表对象是如何计算的?
- python - 无法在我的单元测试文件夹中导入 python 函数
- visual-studio-code - VS Code - 如何隐藏内联警告消息?
- logging - 尝试记录超过 8000 个字符的缓冲区时出现 log4cplus::SocketAppender 错误
- javascript - 如何制作过滤的Api列表并在反应中实现无限滚动的分页
- ruby-on-rails - 在 RSpec 匹配器中,如何使在模型回调中创建的实例可用
- linq - 使用 Group by 时无法翻译 LINQ 表达式
- error-handling - 如何处理 rust 中的自定义字符串错误?
- spring - 如何使用 ConfigDataEnvironmentPostProcessor 和 spring.profiles.group?
- python - 访问字典中的嵌套列表