我试图在 plotly 中创建一个分组条形图,但我似乎无法在一个组中为我的条形着色(所以它们都是相同的颜色)。有谁知道如何在情节中做到这一点?我想根据子类别为我的条形图着色(因此子类别中的所有条形都有自己的颜色)。我曾尝试向图形添加跟踪,但没有运气。谢谢。
sample <- data.frame(
Category <- c("Furniture","Furniture","Furniture","Furniture",
"Office Supplies","Office Supplies", "Office Supplies", "Office Supplies",
"Office Supplies", "Office Supplies", "Office Supplies", "Office Supplies",
"Office Supplies", "Technology","Technology","Technology","Technology"),
SubCategory <- c("Bookcases","Chairs","Furnishings","Tables","Appliances","Art","Binders","Envelopes",
"Fasteners","Labels","Paper","Storage", "Supplies", "Accessories","Copiers","Machines",
"Phones"),
sales <- c(889222.51,920892.65,239840.16,445823.93,614737.91,225594.68,281494.68,104903.88,50156.06,44269.30,
150113.36,692903.08,152196.19,463383.33,965899.78,458655.43,1005525.38)
)
#plot code so far
sample %>%
plot_ly(
x = Category,
y = sales,
type = "bar",
group = SubCategory
)
Run Code Online (Sandbox Code Playgroud)
下面是我到目前为止所拥有的,但着色不是基于分组的。当我提供颜色变量时,它不会将 SubCategory 中的所有条形着色为相同的颜色。这是可能的错误吗?

使用 plotly.js,您可以制作热图,热图的右侧带有色标,一些 3d 图表也是如此。
这是codepen 中的一个例子。
Plotly.d3.json('https://raw.githubusercontent.com/plotly/datasets/master/custom_heatmap_colorscale.json', function(figure) {
var data = [{
z: figure.z,
colorscale: 'Jet',
type: 'heatmap'
}
];
var layout = {title: 'Jet'};
Plotly.newPlot('myDiv', data, layout);
});
Run Code Online (Sandbox Code Playgroud)
我正在努力查看 api 是否允许修改色标位置和长度。plotly.js 是否允许操作这些属性,您是否有热图和/或 3d 图形的示例?
默认情况下,当鼠标悬停在图形光标上时,绘图光标变为“指针”,知道如何保持正常光标吗?
我正在尝试从 3 个向量在 R 中创建等高线图。
我有:
x=c(1,1,1,2,2,2,3,3,3)
y=c(0,10,20,0,10,20,0,10,20)
z=c(900,800,700,600,500,400,300,200,100)
Run Code Online (Sandbox Code Playgroud)
我怎样才能在 R 中做到这一点?
好奇如何使用 ggplot 或 plotly 库函数绘制这个点图。还要在各个点上标记 mpg 值。
# Dotplot: Grouped Sorted and Colored
# Sort by mpg, group and color by cylinder
x <- mtcars[order(mtcars$mpg),] # sort by mpg
x$cyl <- factor(x$cyl) # it must be a factor
x$color[x$cyl==4] <- "red"
x$color[x$cyl==6] <- "blue"
x$color[x$cyl==8] <- "darkgreen"
dotchart(x$mpg,labels=row.names(x),cex=.7,groups= x$cyl,
main="Gas Milage for Car Models\ngrouped by cylinder",
xlab="Miles Per Gallon", gcolor="black", color=x$color)
Run Code Online (Sandbox Code Playgroud)
我在 macOS 上使用 Python 3。我安装了袖扣,但 IDLE 显示
ModuleNotFoundError: No module named 'cufflinks'
我在终端中使用了多个命令,例如:
pip install cufflinks
conda install cufflinks
conda install -c bioconda cufflinks
pip3 install cufflinks
conda-forge install cufflinks
Run Code Online (Sandbox Code Playgroud)
我什至多次尝试卸载并重新安装袖扣,但 IDLE 仍然无法正常工作。
我正在尝试组合一系列R plotly绘图 - 垂直,但由于每个单独绘图的 y 轴标题是水平的,因此组合绘图变得混乱。
这是我的例子:
数据:
set.seed(1)
df <- data.frame(cluster=unlist(lapply(letters[1:10],function(i) rep(paste0("cluster:",i),200))),
group=rep(c(rep("A",100),rep("B",100)),10),val=rnorm(2000))
df$group <- factor(df$group,levels=c("A","B"))
Run Code Online (Sandbox Code Playgroud)
绘制一个图列表density,每个df$cluster:
library(plotly)
plot.list <- lapply(unique(df$cluster),function(i){
density.df <- do.call(rbind,lapply(c("A","B"),function(b){
dens <- density(dplyr::filter(df,cluster == i,group == b)$val,adjust=1)
return(data.frame(x=dens$x,y=dens$y,group=b,stringsAsFactors=F))
}))
density.df$group <- factor(density.df$group,levels=c("A","B"))
if(i == unique(df$cluster)[1]){
cluster.plot <- plot_ly(x=~density.df$x,y=~density.df$y,type='scatter',mode='lines',color=~density.df$group,line=list(width=3),showlegend=T) %>%
layout(xaxis=list(title="Val",zeroline=F),yaxis=list(title=i,zeroline=F,showticklabels=F),legend=list(orientation="h",xanchor="center",x=0,y=1))
} else{
cluster.plot <- plot_ly(x=~density.df$x,y=~density.df$y,type='scatter',mode='lines',color=~density.df$group,line=list(width=3),showlegend=F) %>%
layout(xaxis=list(title="Val",zeroline=F),yaxis=list(title=i,zeroline=F,showticklabels=F))
}
return(cluster.plot)
})
Run Code Online (Sandbox Code Playgroud)
然后,使用以下方法组合它们:
subplot(plot.list,nrows=length(plot.list),shareX=T,shareY=T,titleX=T,titleY=T)
Run Code Online (Sandbox Code Playgroud)
如何将每个图的 y 轴标题旋转plot.list为水平而不是垂直?
我正在使用 Jupyter 笔记本,它在离线模式下绘制条形图没有问题。
我有一个读取 CSV 文件的 Pandas 数据框,我想在 Plotly(离线模式)中快速创建一个饼图。
如果省略,则绘制饼图值 ( https://plot.ly/python/reference/#pie-values ) 计算标签。这就是我所希望的。我想直接从我的熊猫数据框中设置饼图标签(https://plot.ly/python/reference/#pie-labels)。
我的代码:
import plotly as py
import plotly.graph_objs as go
import pandas as pd
from plotly.offline import init_notebook_mode
init_notebook_mode()
df2 = pd.read_csv("./testdata.csv")
trace = go.Pie(
labels= df2["Vendor"]
)
py.offline.plot(trace, filename='pdq_pie_chart.html')
Run Code Online (Sandbox Code Playgroud)
尝试此操作时出现错误:
PlotlyError: The `figure_or_data` positional argument must be `dict`-like, `list`-like, or an instance of plotly.graph_objs.Figure
Run Code Online (Sandbox Code Playgroud)
在 go.Pie 调用之前,我是否错过了什么?我故意没有进入任何格式选项,并希望使用尽可能少的数据帧代码生成饼图。
如何在“无花果”中子绘制“pie1”,使其位于“第一个”位置。这就是我的做法,但它不起作用
import pandas as pd
import numpy as np
import seaborn as sns
import plotly.offline as pyp
import plotly.graph_objs as go
from plotly import tools
import plotly.plotly as py
from plotly.offline import iplot,init_notebook_mode
from IPython.core.display import HTML
import plotly.io
df1=pd.read_excel('file.xlsx',sheet_name='sheet1',index=False)
con_pivot=pd.pivot_table(con,index='Category',values=('Payment'),aggfunc='sum',margins=True,margins_name='Total')
fig = tools.make_subplots(rows=2, cols=2, subplot_titles=('The first','3','2','4'))
pie1=go.Pie(labels=con_pivot.index,values=con_pivot.values)
fig.append_trace(pie1,1,1)
pyo.plot(fig)
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。谢谢
我目前正在试验如何将图形显示到我的 django 模板中。通过将绘图转换为图像然后将其显示在模板中,我取得了一些成功。但是这种方案不适合像 Plotly 和 Cufflinks 这样的交互式图形。
如何将 Plotly 和 Cufflinks 嵌入到我的 django 模板中,以便我的图形具有交互性?