【问题标题】:How to set up scaled axes with hvplot?如何使用 hvplot 设置缩放轴?
【发布时间】:2023-03-18 23:26:01
【问题描述】:

问题:

如何使用hvplot 设置缩放轴? [https://hvplot.pyviz.org/]

代码示例:

我有下面的代码给我以后的数字,但纬度和长轴不相等。如何在两个轴之间保持 1:1 的比例?

import os, sys
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import hvplot.pandas
pos = pd.read_csv(os.path.join('my_gps_positions.csv'))
pos.hvplot.scatter(*'lat lng'.split())

GPS 文件内容如下:

在我的笔记本中,结果图的轴不相等:

【问题讨论】:

标签: python-3.x pandas jupyter-notebook hvplot


【解决方案1】:

经度和纬度单位不应该是相同的距离,除了在赤道上。所以通常你会用 hvplot 将它们绘制为:

df.hvplot.points(x='lon', y='lat', geo=True, tiles='OSM')

但如果你真的想强制它们相同,你可以使用aspect

df.hvplot.scatter(x='lon', y='lat', aspect='equal')

【讨论】:

    【解决方案2】:

    您可以调整绘图的 widthheight 参数:

    df.hvplot.scatter(x='lat', y='lon', width=500, height=500)
    

    或者你的意思是轴的范围?可以通过参数xlimylim设置,例如:

    df.hvplot.scatter(x='lat', y='lon', xlim=(6, 8), ylim=(45, 47))
    

    既然您要绘制纬度和经度,您绝对应该看看 geoviews:http://geoviews.org/

    【讨论】:

    • 两种解决方案都没有在 X 轴和 Y 轴上给我相同的比例。我想要的是,例如,Y 轴和 X 轴上的 1 度都在屏幕上打印出来,以 P 像素或 C 厘米为单位的长度相同。感谢 geoviews 库,我没有探索它,但我会的。
    • 你好,s.k,如果你找到了解决问题的好方法,你能把答案放在这里吗?
    猜你喜欢
    • 1970-01-01
    • 2021-10-21
    • 2020-04-07
    • 2020-04-23
    • 2013-06-06
    • 2023-03-20
    • 1970-01-01
    • 2022-09-27
    相关资源
    最近更新 更多