我正在尝试使用ggplotly为我的ggplot图表添加交互性.我试过在RStudio和命令行中运行它,结果相同.
数据:
library(plotly)
df1 <- as.data.frame(list('x'=1:100,'y'=1:100,'lw'=abs(rnorm(100))))
b <- ggplot(data=df1, aes(x=x,y=y)) + geom_line(size=df1$lw)
Run Code Online (Sandbox Code Playgroud)
使用我的真实数据,结果更糟.下面是a plot(),这是正确的,接下来是ggplotly()
知道如何正确显示这个吗?
我有一个简单的问题关于使用R中的plotly包的三维散点图.看起来所有的图都在使用三维散点图和线图.为了测试这个,我尝试了以下代码(=从备忘单中获取):
library(plotly)
plot_ly(type = "scatter3d", x = c(9,8,5,1), y = c(1,2,4,8),z = c(11,8,15,3),
mode = "markers")
Run Code Online (Sandbox Code Playgroud)
我最终得到的图表只包含轴而不是实际点.为了排除故障,我添加了让我感到困惑的颜色,因为带有颜色标度的图例确实出现了但不是点数本身.我注意到轴的刻度错误((80,-80),(60,-60),(100,-100)).
此外,3d表面图和2d散点图示例完美地工作.
我按照指南在这里:
https://plot.ly/python/filled-chord-diagram/
我制作了这个:
在指南中,我按照ribbon_info代码将hoverinfo添加到连接色带但没有显示.我可以让hoverinfo只显示功能区结束.任何人都可以看到我错在哪里?
ribbon_info=[]
for k in range(L):
sigma=idx_sort[k]
sigma_inv=invPerm(sigma)
for j in range(k, L):
if matrix[k][j]==0 and matrix[j][k]==0: continue
eta=idx_sort[j]
eta_inv=invPerm(eta)
l=ribbon_ends[k][sigma_inv[j]]
if j==k:
layout['shapes'].append(make_self_rel(l, 'rgb(175,175,175)' ,
ideo_colors[k], radius=radii_sribb[k]))
z=0.9*np.exp(1j*(l[0]+l[1])/2)
#the text below will be displayed when hovering the mouse over the ribbon
text=labels[k]+' appears on'+ '{:d}'.format(matrix[k][k])+' of the same grants as '+ '',
ribbon_info.append(Scatter(x=z.real,
y=z.imag,
mode='markers',
marker=Marker(size=5, color=ideo_colors[k]),
text=text,
hoverinfo='text'
)
)
else:
r=ribbon_ends[j][eta_inv[k]]
zi=0.9*np.exp(1j*(l[0]+l[1])/2)
zf=0.9*np.exp(1j*(r[0]+r[1])/2)
#texti and textf are the strings that will be …Run Code Online (Sandbox Code Playgroud) 我想绘制一个带有Plotly的3D-Line Plot用于时间序列并填充每一行.我这里有一个示例代码.
library(plotly)
dens <- with(diamonds, tapply(price, INDEX = cut, density))
data <- data.frame(
x = unlist(lapply(dens, "[[", "x")),
y = unlist(lapply(dens, "[[", "y")),
cut = rep(names(dens), each = length(dens[[1]]$x)))
p <- plot_ly(data, x = ~cut, y = ~x, z = ~y, type = 'scatter3d', mode = 'lines', color = ~cut)
p
Run Code Online (Sandbox Code Playgroud)
用这个代码我可以产生这个图
没有填充的3d线图
我已经尝试过surfaceaxis=0,1或2,他们产生错误的填充物.
3D-Plotly错误填充
我想要的是填充x轴和线图之间的区域.
有一个示例3D图与另一个值.
作为示例3D-Plot,在曲线下填充另一个值
有人可以建议一个方法吗?先感谢您.
编辑:必须使用"plotly"包创建
我有两个带有两列的条形图,创建如下:
fig = tools.make_subplots(rows=1, cols=2)
trace1 = go.Bar(x=x1 , y=y1)
trace2 = go.Bar(x=x2, y=y2)
fig.append_trace(trace1, 1, 1)
fig.append_trace(trace2, 1, 1)
trace3 = go.Bar(x=x3 , y=y3)
trace4 = go.Bar(x=x4, y=y4)
fig.append_trace(trace3, 1, 2)
fig.append_trace(trace4, 1, 2)
Run Code Online (Sandbox Code Playgroud)
我只想要带有堆叠条的第二个子图。我尝试了以下
fig['layout']["xaxis2"].update(barmode='stack')
Run Code Online (Sandbox Code Playgroud)
但这当然行不通。如何将“堆栈”属性仅应用于第二个子图而不是整个图形?
谢谢
我使用 plotly 和 ggplot 创建了以下数据框对象和图形
library(ggplot2)
library(plotly)
rdate <- function(x,
min = paste0(format(Sys.Date(), '%Y'), '-01-01'),
max = paste0(format(Sys.Date(), '%Y'), '-12-31'),
sort = TRUE) {
dates <- sample(seq(as.Date(min), as.Date(max), by = "day"), x, replace=TRUE)
if (sort == TRUE) {
sort(dates)
} else {
dates
}
}
DF<-data.frame(Date = rdate(100))
DF$variable<-LETTERS[seq( from = 1, to = 10 )]
DF$Value<-round(runif(1:nrow(DF),min = 10, max = 50))
Run Code Online (Sandbox Code Playgroud)
接下来我用 ggplot 创建了一个绘图对象
p <- ggplot(DF, aes(x = Date, y = Value, colour = variable)) +
geom_line() + …Run Code Online (Sandbox Code Playgroud) 仅使用plot.ly 中的这几行代码将在 jupyter notebook 中为您提供以下图:
片段 1:
import plotly
import cufflinks as cf
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
init_notebook_mode(connected=True)
iplot(cf.datagen.lines().iplot(asFigure=True,
kind='scatter',xTitle='Dates',yTitle='Returns',title='Returns'))
Run Code Online (Sandbox Code Playgroud)
情节 1:
您如何设置它以便您可以在下面的图中使用交替的背景颜色,就像这篇文章中使用matplotlib显示的那样?
片段 2:
df.iplot(vspan={'x0':'2015-02-15','x1':'2015-03-15','color':'rgba(30,30,30,0.3)','fill':True,'opacity':.4},
filename='cufflinks/custom-regions')
Run Code Online (Sandbox Code Playgroud)
情节 2:
感谢您的任何建议!
我有一个时间序列数据如下:
Datum Menge
1/1/2018 0:00 19.5
1/1/2018 0:15 19.0
1/1/2018 0:30 19.5
1/1/2018 0:45 19.5
1/1/2018 1:00 21.0
1/1/2018 1:15 19.5
1/1/2018 1:30 20.0
1/1/2018 1:45 23.0
Run Code Online (Sandbox Code Playgroud)
并且数据框data的形状为 (14880, 2)。在该Menge列中,只有 11807 个可用值,其余为nan
我试图按如下方式绘制它:
data.plot()
plt.show()
Run Code Online (Sandbox Code Playgroud)
这给了我
但我想使用seaborn或绘制相同的图plotly
因为seaborn我试过:
x = data.Datum
y = data.Menge.values
sns.lineplot(x = x, y = y, data = data)
Run Code Online (Sandbox Code Playgroud)
它给了我输出:
Out[3]: <matplotlib.axes._subplots.AxesSubplot at 0x21286bb8668>
Run Code Online (Sandbox Code Playgroud)
并打开了一个新的图形窗口,但它说 Figure 1 (Not Responding)
所以,我有两个问题:
Datum那里的值。如何更改?plotly.express 非常方便地生成漂亮的交互式绘图。下面的代码生成一个按国家/地区着色的折线图。现在我需要的是在图中添加点。有谁知道如何向折线图添加点?
import plotly.express as px
gapminder = px.data.gapminder().query("continent=='Oceania'")
fig = px.line(gapminder, x="year", y="lifeExp", color='country')
fig.show()
Run Code Online (Sandbox Code Playgroud) 我想反转我使用 plotly.graph_objects 为所有过图获得的图形的 y 轴。我知道可以使用 plotly.express 完成轴的反转。但我想知道如何使用plotly.graph_objects以下方法反转轴:
