Table 1:...在使用xtable()或knitr::kable()在.Rmd文件中时,我想从R脚本中命名我的表而没有自动前缀.输出是pdf文档.
这是.Rmd文件中可重现的示例:
---
title: "Suppress automatic table name and number"
output: pdf_document
---
```{r myirischunk, results = 'asis', tab.cap = NULL, echo = TRUE}
library(xtable)
print(knitr::kable(head(iris), caption = "I sure wish it would say Table 1.a"))
print(knitr::kable(head(iris), caption = "Please stop"))
print(xtable(head(iris), caption = "Same thing with xtable"))
```
Run Code Online (Sandbox Code Playgroud)
我已经看到了一些建议,类似的问题在这里,但我似乎无法得到它在.Rmd文件工作.
有没有办法在3D图中放置轮廓标签?Clabel显然没有用3D实现
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
x,y = np.meshgrid(np.linspace(-1,1,10),np.linspace(-1,1,10))
z=-(x**2+y**2)
fig,ax = plt.subplots()
C=ax.contour(x,y,z)
ax.clabel(C)
fig = plt.figure()
ax = fig.add_subplot(111,projection='3d')
C=ax.contour(x,y,z,zdir='z',offset=-2)
ax.clabel(C)
Run Code Online (Sandbox Code Playgroud)
我想创建一个只有一条趋势线的散点图。Plotly Express 为点列表中的每种颜色创建不同的趋势线。
import plotly.express as px
value = [15, 20, 35, 40, 48]
years = [2010, 2011, 2012, 2013, 2014]
colors = ['red', 'red', 'blue', 'blue', 'blue']
fig = px.scatter(
x=years,
y=value,
trendline='ols',
color=colors
)
fig.show()
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以为所有点创建一条趋势线?
阴谋:
提前致谢!
如何从数据帧的两列绘制两条线图,并且另一列表示 x 轴,另外两列表示前两列的悬停值(工具提示)?
我想在 plotly dash 中绘制一个带有两个子图的图表。我的整个图表如下所示:
import pandas as pd
import numpy as np
import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.graph_objs as go
from plotly.subplots import make_subplots
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv').iloc[:60]
fig = make_subplots(rows=2, cols=1, row_heights=[0.8, 0.2], vertical_spacing=0)
fig.add_trace(go.Candlestick(open=df['AAPL.Open'], high=df['AAPL.High'], low=df['AAPL.Low'], close=df['AAPL.Close'],
increasing_line_color='#0384fc', decreasing_line_color='#e8482c', name='AAPL'), row=1, col=1)
fig.add_trace(go.Scatter(y=np.random.randint(20, 40, len(df)), marker_color='#fae823', name='VO', hovertemplate=[]), row=2, col=1)
fig.update_layout({'plot_bgcolor': "#21201f", 'paper_bgcolor': "#21201f", 'legend_orientation': "h"},
legend=dict(y=1, x=0),
font=dict(color='#dedddc'), dragmode='pan', hovermode='x unified',
margin=dict(b=20, t=0, l=0, r=40))
fig.update_xaxes(showgrid=False, zeroline=False, rangeslider_visible=False, showticklabels=False,
showspikes=True, spikemode='across', spikesnap='data', …Run Code Online (Sandbox Code Playgroud) 我想仅在单击按钮后才使用 plotly 显示图形,但我不确定如何进行此操作。我的图存储在以下代码位中
fig1 = go.Figure(data=plot_data, layout=plot_layout)
Run Code Online (Sandbox Code Playgroud)
然后我使用以下代码位定义我的应用程序布局:
app.layout = html.Div([
#button
html.Div(className='submit', children=[
html.Button('Forecast', id='submit', n_clicks=0)
]),
#loading
dcc.Loading(
id="loading-1",
type="default",
children=html.Div(id="loading-output-1")
),
#graph
dcc.Graph(id= 'mpg-scatter',figure=fig),
#hoverdata
html.Div([
dcc.Markdown(id='hoverdata-text')
],style={'width':'50%','display':'inline-block'})
])
@app.callback(Output('hoverdata-text','children'),
[Input('mpg-scatter','hoverData')])
def callback_stats(hoverData):
return str(hoverData)
if __name__ == '__main__':
app.run_server()
Run Code Online (Sandbox Code Playgroud)
但问题是我只想首先显示按钮。然后当有人点击预测按钮时,加载功能出现,一秒钟后图表显示。我定义了一个 dcc.loading 组件,但不确定如何定义此功能的回调。
我注意到绘制不同的时间尺度会导致重叠条形图的不透明度褪色。我该如何纠正这个问题?在第一张图片中,我绘制了 2 年的时间范围,在第二张图片中,我绘制了 1 年的时间范围。请注意,前者有一个明显褪色的条形图,我希望这两个图表无论范围如何都是相同的。
旁注:我正在“破解”图表以主轴为中心,如果有人可以帮助我弄清楚如何直接设置辅助轴的 y 轴范围,这也会非常有帮助。
import plotly.graph_objects as go
from plotly.subplots import make_subplots
filtered = df[(df['date'] > '2017-1-24') & (df['date'] <= '2018-1-24')]
fig = make_subplots(specs=[[{"secondary_y": True}]])
fig.add_trace(
go.Bar(
x=filtered['date'],
y=filtered['divergence'],
opacity=0.5
)
)
fig.add_trace(
go.Scatter(
x=filtered['date'],
y=filtered['price'],
mode="lines"
),
secondary_y=True
)
fig.update_layout(yaxis_range=[-9, 9])
fig.show()
Run Code Online (Sandbox Code Playgroud)
假设我有以下脚本为我绘制图表:
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
img = mpimg.imread('stinkbug.png')
#circle = plt.Circle((0, 0), radius=0.5, fc='y')
circle = plt.Circle((0, 0), radius=100, fill=False, color='b')
fig, ax = plt.subplots()
ax.imshow(img)
ax.add_artist(circle)
fig.show()
pass
Run Code Online (Sandbox Code Playgroud)
不幸的是,这个人物在脚本结束后就关闭了。
如何预防呢?
更新
如果这个人物不可能在剧本中幸存下来,那么原因是什么?人物和剧本之间有什么联系?
我遇到了一个看似简单的问题:在pandas数据帧中删除唯一的行.基本上,相反drop_duplicates().
让我们说这是我的数据:
A B C
0 foo 0 A
1 foo 1 A
2 foo 1 B
3 bar 1 A
Run Code Online (Sandbox Code Playgroud)
当A和B是唯一的时候我想删除行,即我只想保留第1行和第2行.
我尝试了以下方法:
# Load Dataframe
df = pd.DataFrame({"A":["foo", "foo", "foo", "bar"], "B":[0,1,1,1], "C":["A","A","B","A"]})
uniques = df[['A', 'B']].drop_duplicates()
duplicates = df[~df.index.isin(uniques.index)]
Run Code Online (Sandbox Code Playgroud)
但我只得到第2行,因为0,1和3都是唯一的!
目标: 我正在尝试使用 plotly(通过 ggplotly)创建 ggplot2 地图的交互式版本。
问题: Plotly 在图表上方和下方添加额外的空间,而不是像它应该的那样“拉伸”图表(例如,参见图片)。
例子
我想要什么(在 ggplot2 中制作的示例):
我得到了什么(以情节制作的例子):
我知道 ggplotly 不支持 aspect.ratio 但是有没有其他方法可以在保持 x 轴 (-12,2) 和 y 轴 (50,60) 限制的同时删除上下空间
代码:
library(maps)
library(ggplot2)
library(plotly)
boundaries <- ggplot2::map_data("world", region=c("UK","Ireland","France","Norway"))
map <- ggplot() +
geom_polygon(data=boundaries, aes(x=long, y=lat, group=group), color="black", fill="white") +
coord_sf(xlim=c(-12, 2), ylim=c(50,60)) +
theme(aspect.ratio = 1.2)
show(map)
visual <- ggplotly(map, height=1.2*400, width=400, tooltip=c("text"), hoverinfo='hide',
dynamicTicks=F) %>%
layout(xaxis=list(autorange=F, range=c(-12, 2)), yaxis = list(autorange=F, range=c(50,60)))
show(visual)
Run Code Online (Sandbox Code Playgroud)
要复制问题:
操作系统:Windows 10
IDE:RStudio
R:R 3.6.1
python ×8
plotly ×6
matplotlib ×2
plotly-dash ×2
r ×2
3d ×1
dataframe ×1
ggplot2 ×1
ggplotly ×1
knitr ×1
latex ×1
pandas ×1
regression ×1
rstudio ×1
xtable ×1