python - 如何制作带有情节的 bar_polar 图表,没有频率列?
问题描述
代码的第一部分是来自 plotly 网站的代码,它显示了我想用我自己的可用数据做什么。
import plotly.express as px
import pandas as pd
fig= px.bar_polar(df2, r="frequency", theta = "direction",
color = "strength", template = "plotly_dark",
color_discrete_sequence = px.colors.sequential.Plasma_r)
fig.show()
所需图表:
到目前为止,这是我的代码:
import plotly.express as px
import pandas as pd
df = pd.read_csv (r"Lidar_final_corrected.csv")
print(df)
wind_dir Windspeed
0 227.35 2.12
1 233.41 1.65
2 227.75 1.52
3 217.75 1.71
4 204.64 2.21
... ... ...
3336 222.33 17.89
3337 221.52 17.21
3338 219.37 15.45
3339 217.23 16.09
3340 218.31 16.18
[3341 rows x 2 columns]
fig= px.bar_polar(df,theta = "wind_dir",
color = "wind_dir", template = "plotly_dark",
color_discrete_sequence = px.colors.sequential.Plasma_r)
fig.show()
电流输出:
现在,如果您仔细观察,您会发现它正在绘制一些东西,但颜色不对。我省略了频率,因为我只有两列可以使用。有没有一种解决方法可以让这个情节在没有频率的情况下工作?
(PS:数据是基于时间序列的数据,所以每 10 分钟或 1 分钟就有一个新条目。我删除了时间戳,因为我认为我不需要它。)
解决方案
你需要做一个熊猫 groupby
grp = df.groupby(["wind_dir", "wind_speed"]).size().reset_index(name="frequency")
然后,您可以使用与 plotly 文档中相同的 plotly 代码!
fig = px.bar_polar(grp, r="frequency", theta="wind_dir",
color="wind_speed", template="plotly_dark",
color_discrete_sequence=px.colors.sequential.Plasma_r
)
fig.show()
快乐的阴谋!(为了获得更好的结果,您应该对风向和风速进行分类。(至少围绕它们)。正确分类的示例: https ://community.plotly.com/t/wind-rose-with-wind-speed-ms- and-direction-deg-data-columns-need-help/33274/5
推荐阅读
- python - fill() 和 plot() 在 pyplot 中给出不同的结果
- ios - Xcode 不会将应用程序加载/安装到设备上
- amazon-web-services - 检索 m3u8 链接以测试 AWS 流/字幕
- javascript - javascript获取API json rest无法访问数据
- django - Django 过滤器没有使用 Postgresql JSONField 上的索引
- android-studio - 无法在 Android Studio 新项目中解析“import android.support.v7.widget.GridLayout;”
- jaxb - spring批处理作业xml到带有复合标签的平面文件
- lua - ModuleScript 越来越需要并且可以正常工作,但是这些功能不起作用(Roblox)
- javascript - laravel-datatable:我无法通过集合
- java - 有没有办法使用 C++ 从 Java 进程中读取值?