【发布时间】:2019-05-25 00:40:37
【问题描述】:
我用 Seaborn 创建了一个情节:
# imports
import random
%matplotlib inline
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# create some random data
N = 20
rand_matrix = np.asarray([random.randrange(1,11)/10 for _ in range(1, N*N+1) ]).reshape(N,N)
data = np.flip(np.triu(rand_matrix), 1)
df = pd.DataFrame(data, index=pd.date_range(start='2015-01-01', freq='MS',\
periods=N), columns = range(1,N+1))
df[1]=1
# seaborn plot
plt.figure(figsize=(20,20))
sns.heatmap(data = df,
annot = True,
vmin = 0.0,
vmax = 1.0,
cmap = 'PuBuGn')
这是我创建 Plotly 情节的方法:
import plotly.offline as py
import plotly.graph_objs as go
py.init_notebook_mode(connected=True)
data = [
go.Heatmap(
z=df.values,
x=df.columns.tolist(),
y=df.index.tolist()
)
]
layout = go.Layout(
xaxis = dict(ticks='', nticks=N),
yaxis = dict(ticks='', nticks=N))
fig = go.Figure(data=data, layout=layout)
iplot(fig)
我有以下问题:
- Seaborn:如何将 y 轴标签更改为 YYYY-MM?
- Plotly:如何将旧数据置于顶部(如 Seaborn)
- Plotly:如何获取热图中显示的数据标签(就像 Seaborn 一样)。
- Plotly:我注意到渲染比 Seaborn 慢得多。是否可以优化,如果可以,如何优化?
【问题讨论】:
-
SO 更多地是围绕每个帖子一个问题的模型设计的。您的第一个问题已经回答了很多次(在 matplotlib 标签下),第二个问题直接在 Plotly 的 Axes 文档中的“Reversed Axes”标题下回答
标签: python python-3.x pandas plotly seaborn