我有从Excel电子表格中读取的数据.该数据对于六种情景S1至S6中的每一种都有许多观察结果.当我将数据读入我的数据帧df时,它看起来如下:
Scenario LMP
0 S1 -21.454544
1 S1 -20.778094
2 S1 -20.027689
3 S1 -19.747170
4 S1 -20.814405
5 S1 -21.955406
6 S1 -23.018960
...
12258 S6 -34.089906
12259 S6 -34.222814
12260 S6 -26.712010
12261 S6 -24.555973
12262 S6 -23.062616
12263 S6 -20.488411
Run Code Online (Sandbox Code Playgroud)
我想创建一个小提琴图,它为六种场景中的每一种都有不同的小提琴.我是Pandas和数据框架的新手,尽管在最后一天进行了大量的研究/测试,我还是无法找到一种优雅的方法将一些参考传递给我的数据框(将它分成不同的系列用于每个场景)将在axes.violinplot()语句中工作.例如,我尝试了以下,但不起作用.我在我的axes.violinplot语句中得到一个"ValueError:无法将大小为1752的序列复制到维度为2的数组轴".
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# load data into a dataframe
df = pd.read_excel('Modeling analysis charts.xlsx',
sheetname='lmps',
parse_cols=[7,12],
skiprows=0,
header=1)
fontsize = 10
fig, axes = plt.subplots()
axes.violinplot(dataset = …Run Code Online (Sandbox Code Playgroud) 有没有办法在物理上将“分割”seaborn 小提琴图(或其他类型的小提琴图)的两半分开?我试图比较两种不同的处理方法,但是尾巴很细,很难(不可能)判断分裂小提琴的一半还是两半一直上升到尾巴的尖端。
我的一个想法是,如果两半稍微分开而不是紧挨着,那么就很容易准确地吸收数据。
这是我的代码:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import style
import seaborn as sns
# load data into a dataframe
df1 = pd.read_excel('Modeling analysis charts.xlsx',
sheetname='lmps',
parse_cols=[0,5],
skiprows=0,
header=1)
# identify which dispatch run this data is from
df1['Run']='Scheduling'
# load data into a dataframe
df2 = pd.read_excel('Modeling analysis charts.xlsx',
sheetname='lmps',
parse_cols=[7,12],
skiprows=0,
header=1)
# identify which dispatch run this data is from
df2['Run']='Pricing'
# drop rows with missing data …Run Code Online (Sandbox Code Playgroud) 我需要创建一个地图,其中各州根据有关该州的一条数据具有不同的颜色。我在 cartopy 画廊中找到了一个美国地图的例子,但它没有演示如何引用州和访问它们的属性,而且几乎没有其他内容:
从示例中,我已将他们的代码简化为以下内容,并希望您能在修改此代码以根据状态的流行密度大小设置要设置的状态的面部颜色方面得到任何帮助。
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.io.shapereader as shpreader
fig = plt.figure()
ax = fig.add_axes([0, 0, 1, 1], projection=ccrs.LambertConformal())
ax.set_extent([-125, -66.5, 20, 50], ccrs.Geodetic())
shapename = 'admin_1_states_provinces_lakes_shp'
states_shp = shpreader.natural_earth(resolution='110m',
category='cultural', name=shapename)
popdensity = {
'New Jersey': 438.00,
'Rhode Island': 387.35,
'Massachusetts': 312.68,
'Connecticut': 271.40,
'Maryland': 209.23,
'New York': 155.18,
'Delaware': 154.87,
'Florida': 114.43,
'Ohio': 107.05,
'Pennsylvania': 105.80,
'Illinois': 86.27,
'California': 83.85,
'Virginia': 69.03,
'Michigan': 67.55,
'Indiana': 65.46,
'North Carolina': 63.80, …Run Code Online (Sandbox Code Playgroud) 以下代码创建了美国大陆各州的地图,该地图由人口密度着色。我想创建一个类似的地图(我的数据实际上不是人口密度,但这是一个简单的例子),除了它还包括阿拉斯加州和夏威夷州。
具体来说,我希望阿拉斯加/夏威夷出现在图中,但要移动到显示美国大陆的图部分下方。或类似的规定。
知道如何使用 Cartopy 创建这样的地图吗?
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.io.shapereader as shpreader
fig = plt.figure()
ax = fig.add_axes([0, 0, 1, 1], projection=ccrs.LambertConformal())
ax.set_extent([-125, -66.5, 20, 50], ccrs.Geodetic())
shapename = 'admin_1_states_provinces_lakes_shp'
states_shp = shpreader.natural_earth(resolution='110m',
category='cultural', name=shapename)
popdensity = {
'New Jersey': 438.00,
'Rhode Island': 387.35,
'Massachusetts': 312.68,
'Connecticut': 271.40,
'Maryland': 209.23,
'New York': 155.18,
'Delaware': 154.87,
'Florida': 114.43,
'Ohio': 107.05,
'Pennsylvania': 105.80,
'Illinois': 86.27,
'California': 83.85,
'Virginia': 69.03,
'Michigan': 67.55,
'Indiana': 65.46,
'North Carolina': 63.80,
'Georgia': …Run Code Online (Sandbox Code Playgroud)