我想指定图例是垂直显示还是水平显示。我的意思不是说Matplotlib图例垂直旋转中描述的图例文本。我的实际案例包括使用小部件指定的任意数量的系列。但是以下示例代表了挑战的要点:
片段:
# Imports
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
# data
np.random.seed(123)
x = pd.Series(np.random.randn(100),index=pd.date_range('1/1/2000', periods=100)).cumsum()
y = pd.Series(np.random.randn(100),index=pd.date_range('1/1/2000', periods=100)).cumsum()
z = pd.Series(np.random.randn(100),index=pd.date_range('1/1/2000', periods=100)).cumsum()
df = pd.concat([x,y,z], axis = 1)
# plot
ax = plt.subplot()
for col in (df.columns):
plt.plot(df[col])
plt.legend(loc="lower left")
plt.xticks(rotation=90)
plt.show()
Run Code Online (Sandbox Code Playgroud)
情节:
默认布局似乎是垂直的。查看help(ax.legend)和文档的细节,似乎没有一种直接的方法可以将其更改为水平。还是在那里?
编辑-所需的图例:(使用MS Paint)
我有一个单通道图像,其中每个整数像素值映射到一个字符串。例如 5 -> '人'。我正在尝试创建一个交互式图像,其中将鼠标悬停在像素上将显示其相应的字符串。
我认为使用绘图热图可能是做到这一点的方法。我遇到的问题是:
z_text似乎是一个糟糕的解决方法,但设置annotation_text=None似乎不起作用。有人可以帮我从这里出去吗?这是我所得到的:
import numpy as np
import plotly.graph_objs as go
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
init_notebook_mode(connected=True)
import plotly.figure_factory as ff
z = np.random.randint(0,6, size=(10, 10))
z_text = np.full(z.shape, '', dtype=str)
d = {0:'a', 1:'b', 2:'c', 3:'d', 4:'e', 5:'f'}
class_mat = np.vectorize(d.get)(z)
fig = ff.create_annotated_heatmap(z, annotation_text=z_text, text=class_mat, hoverinfo='text', colorscale='Viridis', )
fig.layout.title = 'Semantic Segmentation'
iplot(fig, filename='annotated_heatmap_text')
Run Code Online (Sandbox Code Playgroud)
这是它目前的样子:
另外,如果情节热图不是解决此问题的最佳方法,我很想听到任何替代方案! …
相关文章的答案如何连接到现有的Jupyter Notebook内核并使用变量浏览器检查变量?似乎不可能。但是,如果我们尝试将Jupyter Notebook连接到spyder内核该怎么办?那么,能否将内核提供给Jupyter Notebook,Spyder 和 Spyder中的Variable Explorer?
将Spyder IDE连接到远程IPython内核的文章使听起来有些可能:
在Jupyter笔记本中进行数据科学很有趣,但有时您需要能够使用Spyder中的便捷变量浏览器戳入变量。
将Spyder连接到远程内核就像笔记本一样简单。我将引导您完成整个过程。
但是我无法重现该示例,并且有些担心我不太了解作者在整篇文章中的含义。
这是我尝试过的:
1. conda install spyder-kernels工作正常。
2.一样python -m spyder_kernels.console?:
但是我在其余的方面都遇到了问题,并且这篇文章也没有谈到将Jupyter Notebook连接到--existing kernel-19909.json。我的零件也有问题python -m spyder_kernels.console?—?matplotlib=’inline’?—?ip=x.x.x.x -f=./remotemachine.json。
关于如何进一步做到这一点有什么建议吗?
系统信息:
The version of the notebook server is: 5.6.0
CPython 3.7.0
IPython 6.5.0
compiler : MSC v.1912 64 bit (AMD64)
system : Windows
release : 7
machine : AMD64
CPU cores : 8
interpreter: 64bit
Run Code Online (Sandbox Code Playgroud) 有没有什么方法可以在 Plotly 甘特图中创建任务标签在条形图上和资源标签在 y 轴上?
的文档中没有这样的例子plotly.figure_factory.create_gantt。下面给出了理想图表的抽象示例:
我有一个破折号仪表板,我似乎无法重新调整我的辅助 y 轴。有没有办法做到这一点?我试过弄乱 go.Layout 中的域参数和范围参数。我需要按比例缩小音量条形图并占据绘图高度的 10%,这样它就不会与我的烛台重叠。
非常感谢。任何帮助表示赞赏。
import pandas as pd
import pandas_datareader.data as web
import plotly.offline as pyo
import plotly.graph_objs as go
stock_ticker='AAPL'
start_date='2019-04-01'
end_date='2019-05-22'
data=[]
hist_stock_df = web.DataReader(stock_ticker,'iex',start_date, end_date)
data.append(go.Candlestick(x=hist_stock_df.index,
open=hist_stock_df['open'],
high=hist_stock_df['high'],
low=hist_stock_df['low'],
close=hist_stock_df['close'],
name='AAPL'))
data.append(go.Bar(x=hist_stock_df.index,
y=hist_stock_df['volume'].values,
yaxis='y2'))
#y0=1000000
layout=go.Layout(title= 'Candestick Chart of AAPL',
xaxis=dict(title='Date',rangeslider=dict(visible=False)),
yaxis=dict(title='Price'),
plot_bgcolor='#9b9b9b',
paper_bgcolor='#9b9b9b',
font=dict(color='#c4c4c4'),
yaxis2=dict(title='Volume',
overlaying='y',
side='right'))
#scaleanchor='y'))
#scaleratio=0.00000001,
#rangemode='tozero',
#constraintoward='bottom',
#domain=[0,0.1]))
fig = go.Figure(data=data, layout=layout)
pyo.iplot(fig)
Run Code Online (Sandbox Code Playgroud)
我试过弄乱注释的参数
更新
通过这种布局参数的组合,我设法重新调整了条形图,但现在有两个 x 轴,我一直试图弄清楚如何将中间的 x 轴降低。
layout=go.Layout(title= 'Candestick Chart of AAPL',
xaxis=dict(title='Date',rangeslider=dict(visible=False)),
yaxis=dict(title='Price'),
plot_bgcolor='#9b9b9b',
paper_bgcolor='#9b9b9b', …Run Code Online (Sandbox Code Playgroud) 在plotly网站中,有一个示例可以使用shape函数在plotly中添加垂直或水平线。
import plotly.plotly as py
import plotly.graph_objs as go
trace0 = go.Scatter(
x=[2, 3.5, 6],
y=[1, 1.5, 1],
mode='text',
)
data = [trace0]
layout = {
'xaxis': {
'range': [0, 7]
},
'yaxis': {
'range': [0, 2.5]
},
'shapes': [
# Line Horizontal
{
'type': 'line',
'x0': 2,
'y0': 2,
'x1': 5,
'y1': 2,
'line': {
'color': 'rgb(50, 171, 96)',
'width': 4,
'dash': 'dashdot',
}
}
]
}
fig = {
'data': data,
'layout': layout,
}
py.iplot(fig, filename='shapes-lines') …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 plotly 绘制条形图,我想添加标题和副标题。(在这里,您可以选择添加标题和副标题的任何示例)
我绘制条形图的代码:
import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(go.Bar(x=["Apple", 'Mango', 'Banana'], y=[400, 300, 500]))
fig.show()
Run Code Online (Sandbox Code Playgroud) 如何复制绘图图形对象以进行一些更改,但为其他绘图保留相同的基本结构?
以下引发属性错误:
代码:
fig2=fig1.copy()
Run Code Online (Sandbox Code Playgroud)
错误:
属性错误:“图形”对象没有属性“复制”
当然fig2=fig1不会有帮助,因为两个名称将指向同一个对象。
我有一个数据框并使用plotly我想可视化数据。我有以下代码
fig = px.line(df, x="row_num", y="audienceWatchRatio", color='vid_id')
fig.show()
Run Code Online (Sandbox Code Playgroud)
它真的很乱,所以我想要一个下拉菜单,用户可以在其中选择vid_id并且它只显示 1 个图形。