我试图使用 Plotly 的 add_hline() 向 Plotly 图表添加一条水平线。只要我不使用 simple_white 模板,它就可以完美工作。MWE 在这里:
import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x="petal_length", y="petal_width")
fig.add_hline(y=0.9, line_dash='dash', line_color='Red')
fig.update_layout(width=400, height=400,
# template='simple_white'
)
fig.show()
Run Code Online (Sandbox Code Playgroud)
如果没有 template='simple_white' 行, add_hline() 将按预期工作。不过,使用该模板,并且没有其他更改,绘图是相同的,但没有水平线。
我正在使用 pypandoc 将 Markdown 文件转换为 LaTex。我的降价文件有一个标题,例如:
# Header Text #
Run Code Online (Sandbox Code Playgroud)
当 pypandoc 将文件呈现为 .tex 文件时,它显示为:
\hypertarget{header-text}{%
\section{Header Text}\label{header-text}}
Run Code Online (Sandbox Code Playgroud)
虽然这是一个很好的功能,可以轻松链接回节标题,但我不一定想要这样,并且在这种情况下更希望 pypandoc 只生成:
\section{Header Text}
Run Code Online (Sandbox Code Playgroud)
是否有可用于关闭 \hypertarget{} 功能的 pandoc 设置或 pypandoc 设置?我已经查看了 pandoc 的文档,但在任何地方都没有看到。
我正在尝试使用辅助 y 轴在绘图中添加 hline 形状。该图正确显示了两个不同 y 轴的数据,但尽管在 add_hline 函数中使用 yref='y2',但 hline 仍绘制在主轴上。
我意识到我可以使用 add_shape 而不是 hline 来解决这个问题,但我试图确定我是否做错了什么。
import plotly.express as px
import plotly.graph_objects as go
import numpy as np
# simple example with hline
df = px.data.iris()
fig = px.scatter(df, x="petal_length", y="petal_width")
fig.add_traces(go.Scatter(y=np.arange(1, 7), mode="lines+markers", yaxis='y2'))
fig.add_hline(y=2, line_dash='dash', line_color='Red', yref='y2')
fig.update_layout(
width=400,
height=400,
plot_bgcolor="white",
xaxis=dict(linecolor="black"),
yaxis=dict(linecolor="black"),
yaxis2=dict(
title="yaxis2 title",
overlaying="y",
side="right",
linecolor="black",
)
)
fig.update_xaxes(ticks="outside")
fig.update_yaxes(ticks="outside")
fig.show()
Run Code Online (Sandbox Code Playgroud)
Plotly Python API可以使用MapBox(ScatterMapbox)制作漂亮的交互式地图,但无法控制地图范围。例如,如果您想要将图像保存为 PDF 或 PNG 文件并且不希望用户以交互方式缩放,那么能够控制地图范围就很重要。
我面临的问题是没有办法直接表明您只想查看某个区域。例如,无法表明您希望地图仅显示佛罗里达州。
但是,您可以设置地图的中心和缩放级别。当您知道想要可见的框的纬度/经度坐标并且知道中心坐标时,是否可以使用一个公式来定义缩放级别?
例如,如果我希望地图以坐标(center_lat,center_long)为中心并进行缩放,以便可见部分具有西南坐标(sw_lat,sw_long)和东北坐标(ne_lat,ne_long),那么MapBox ZOOM是什么我必须提供的级别?
我意识到该公式可能取决于地图投影,这就是为什么我具体使用 MapBox 和 Plotly。此外,我在 SO 上看到过类似的问题,但这些问题似乎都与通过 JS 使用 MapBox 有关,而不是在 Plotly Python API 中,这使我很难将解决方案转化为我认为可以使用的东西。
我尝试将 GeoAlchemy2 与 Python 3.5 一起使用并收到以下错误:
from geoalchemy import Geometry
from geoalchemy.base import *
from utils import from_wkt
ImportError: No module named 'utils'
Run Code Online (Sandbox Code Playgroud)
有一个简单的解决方案吗?
我正在尝试使用matplotlib和Basemap在地图上绘制点,其中点表示特定建筑物的纬度/经度.我的地图确实绘制了点,但将它们放在错误的位置.当我使用相同的数据并使用Bokeh做同样的事情,而不是matplotlib和底图,我得到正确的情节.
这是底图:底图版本中的INCORRECT结果
我已经在StackOverflow的其他地方看到过讨论,这可能与plot()以某种方式"移动"经度这一事实有关.我已经尝试了那里的建议,包括行:lons,lats = m.shiftdata(long,lat)然后使用移位的数据.这没有任何明显的影响.
我在Basemap和Bokeh中生成两个图的完整示例代码如下:
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
import pandas as pd
from bokeh.plotting import figure, show
from bokeh.sampledata.us_states import data as states
from bokeh.models import ColumnDataSource, Range1d
# read in data to use for plotted points
buildingdf = pd.read_csv('buildingdata.csv')
lat = buildingdf['latitude'].values
long = buildingdf['longitude'].values
# determine range to print based on min, max lat and long of the data
margin = .2 # buffer to add …Run Code Online (Sandbox Code Playgroud) plotly ×2
geoalchemy2 ×1
mapbox ×1
matplotlib ×1
pandoc ×1
plotly-dash ×1
pypandoc ×1
python ×1