我正在尝试创建plotly一个散点图,它将同一系列的点区分为两个(或三个)美学 - 颜色,形状,大小.最终目标是能够使用三种美学中的任何一种通过图例打开/关闭点组.这适用于一种美学.
[已添加2016-06-20]扩展所需的互动行为:一旦显示图形,该想法就是能够通过点击任何一个图例来切换点组.例如(在下面的示例数据中),如果我y在图例中单击,它将隐藏/显示所有系列中的点#4,5和10.如果有点击A,则切换点#1,2和8.作为现实生活中的用例 - 考虑债券价格,横轴为成熟度,纵向为价格.债券的特点是原产国,信用评级和发行规模.因此,如果我点击信用评级"A",我希望隐藏所有A级问题,无论其大小和来源国家.目前,它们仅与评级相关的跟踪隐藏.反映其他属性(大小和国家/地区)的痕迹中的点仍然显示.鉴于下面的详细答案,我倾向于将此作为功能请求发布在plotly网站上.
我已经解决了这个问题plotly,但是如果这个行为可以在R的另一个包/库中实现,并且疼痛程度相对较低(意味着没有自定义JavaScript等),我也会接受这个问题.
[结束编辑]
静态部分很容易完成,ggplot2但我无法重新创建plotly(用于交互性),甚至使用ggplotly().不确定是否有可能,但我想我会问.以下示例数据和代码.
(可能与使用R的2 +传说到plotly/plot.ly相关)
生成一些虚拟数据:
library(data.table)
library(plotly)
library(ggplot2)
DT <- data.table(
x = c(1:10), y = 1:10/2,
gr1 = c("A", "A", "B", "C", "D", "D", "B", "A", "E", "E"),
gr2 = c("x", "x", "x", "y", "y", "z", "z", "x", "x", "y"),
gr3 = c(1,2,2,1,3,4,1,2,2,1)
)
Run Code Online (Sandbox Code Playgroud)
该ggplot()版本是这样的,而且我想plotly得到什么:
p <- ggplot(data = DT) + …Run Code Online (Sandbox Code Playgroud) 是否有可能为plotly.js中的刻度标签提供更多空间?我的图表中的长标签正在被切断.
HTML:
<div id="plot"></div>
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
var data = [{
type: 'bar',
x: [20, 14, 23],
y: ['giraffes', 'orangutans', 'a looooooooong string'],
orientation: 'h'
}];
var layout = {
title: 'Bar Chart'
};
Plotly.newPlot('plot', data, layout);
Run Code Online (Sandbox Code Playgroud)
鉴于我的图表的性质,我需要使用水平方向.所以我不能使用的解决方案是垂直方向,蜱旋转90度.
我想知道如何使用plot_ly为子图提供不同的字幕.请提示任何提示.在这种情况下我得到了一个BB冠军.谢谢.
p <- subplot(
plot_ly(economics, x = date, y = uempmed)%>%layout(showlegend = FALSE, title="AA"),
plot_ly(economics, x = date, y = unemploy)%>%layout(showlegend = FALSE, title="BB"),
margin = 0.05
)
Run Code Online (Sandbox Code Playgroud) 为什么我在曲线条形图中获得的顺序不同于我在x和y变量中定义的顺序.
例如
library(plotly)
plot_ly(
x = c("giraffes", "orangutans", "monkeys"),
y = c(20, 14, 23),
name = "SF Zoo",
type = "bar"
)
Run Code Online (Sandbox Code Playgroud)
我需要条形图,我看到的条形顺序与x变量(分类)相同.这有什么诀窍吗?
如何在最终帧上进行绘制动画加载.也就是说,当情节加载时,我希望它加载到最后一帧(例如2017).默认情况下,它会加载到第一帧(例如1960).之后,当用户点击播放时,动画应该从第一帧开始(例如,1960)
animation_opts(frame = frame, transition = 0, redraw = FALSE) %>%
animation_slider(currentvalue = list(prefix = "Year"))
Run Code Online (Sandbox Code Playgroud) 我使用plotly包创建了一个Sankey图.
据我所知,节点的默认顺序主要由值定义.但是,我想要字母顺序,而无需手动移动鼠标药物的节点.
我可以用R更改默认顺序吗?
任何帮助将不胜感激.下面是一个示例代码和输出:
node_label <- c("x1_1", "x1_2", "x2_1", "x2_2")
link_source <- c(0, 0, 1, 1)
link_target <- c(2, 3, 2, 3)
link_value <- c(2, 5, 1, 3)
# when link_value <- c(5, 2, 1, 3), the order is changed.
plotly::plot_ly(
type = "sankey",
domain = list(x = c(0,1), y = c(0,1)),
node = list(label = node_label),
link = list(
source = link_source,
target = link_target,
value = link_value))
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用我从PostgreSQL服务器获得的一些数据创建一个图形图,但是当我尝试图形时我收到一个错误:"TypeError:'DataFrame'类型的对象不是JSON可序列化的"
这是迄今为止的代码:
import dash
import numpy as np
import pandas as pd
import plotly.offline as py
import plotly.graph_objs as go
import psycopg2 as pg2
import datetime
conn = pg2.connect(database='X',user='X',password=secret)
cur = conn.cursor()
cur.execute("SELECT * FROM times;")
a = cur.fetchall()
str(a)
df = pd.DataFrame([[ij for ij in i] for i in a])
df.to_json()
df.rename(columns={0: "Serial Number", 1: "Status", 2: "Date", 3: "Time", 4: "Number"}, inplace=True);
x = df["Date"]
data = [go.Scatter(
x=x,
y=df["Status"])]
layout = go.Layout(title="Server Data Visualization",
xaxis = dict( …Run Code Online (Sandbox Code Playgroud) 我有一个由调查生成的数据库,用于评估大学教授。我想要的是一个python脚本,该脚本从该数据库中获取信息,为每个用户生成一个图形表,为每个用户创建图形,然后将其呈现在模板中以将其导出为pdf。
数据库是什么样的?
User Professor_evaluated Category Question Answer
_________________________________________________________________
Mike Professor Criss respect 1 3
Mike Professor Criss respect 2 4
Mike Professor Criss wisdom 3 5
Mike Professor Criss wisdom 4 3
Charles Professor Criss respect 1 3
Charles Professor Criss respect 2 4
Charles Professor Criss wisdom 3 5
Charles Professor Criss wisdom 4 3
Run Code Online (Sandbox Code Playgroud)
每个老师都有几个要评估的类别(尊重,智慧等),每个类别又有相关的问题。换句话说,一个类别有几个问题。数据库的每一行都是学生评估老师的问题的答案
我需要什么?
我需要创建一个脚本来自动生成pdf报告,并通过图表来汇总这些信息,例如,一张图表列出每位老师的总成绩,另一张图表列出每位老师的分数,另一张图表列出每位学生的平均值,等等。最后,每个老师都会有一份报告。我想要这样的报告
我有什么问题
我的问题是我需要执行哪个python软件包和模块。这样做的一般过程是什么。我不需要代码,因为我知道答案很笼统,但是知道如何实现。
例如:您首先需要使用熊猫处理信息,创建一个汇总要绘制的信息的表格,然后将其绘制出来,然后使用XYZ模块创建报告模板,然后使用XYZ模块将其导出为pdf。 。
我正在使用 Plotly python 库生成一个带有几个小提琴图和几个填充散点图的图形。无论fig.add_trace我的代码中的各个调用的顺序如何,小提琴图始终绘制在散点图后面。
有谁知道是否有控制布局或情节顺序的特定方法?就像是zorder=3?
编辑: 以下来自 Plotly 的示例供参考:
import plotly.express as px
df = px.data.gapminder().query("continent == 'Europe' and year == 2007 and pop > 2.e6")
fig = px.bar(df, y='pop', x='country', text='pop')
fig.update_traces(texttemplate='%{text:.2s}', textposition='outside')
fig.update_layout(uniformtext_minsize=8, uniformtext_mode='hide')
fig.show()
Run Code Online (Sandbox Code Playgroud)
如何删除“流行”一词。
我想隐藏'value'的y轴标题。
fig.update_yaxes(showticklabels=False)
Run Code Online (Sandbox Code Playgroud)
谢谢。
plotly ×10
r ×5
ggplot2 ×2
pandas ×2
python ×2
animation ×1
axes ×1
d3.js ×1
javascript ×1
jinja2 ×1
label ×1
matplotlib ×1
postgresql ×1
psycopg2 ×1
python-3.x ×1
shiny ×1
subplot ×1
subtitle ×1