我正在学习使用Python进行数据分析,并使用matplotlib和seaborn库,并在Kaggle中制作了一个Notebook。我试图制作一个散点图,以显示萼片叶子和花瓣叶子的宽度和长度之间的比率。
sns.FacetGrid(iris, hue="Species", size=10)
total_rows = iris.count
number_of_iris = len(iris)
sepalLengths = iris["SepalLengthCm"]
sepalWidths = iris["SepalWidthCm"]
petalLengths = iris["PetalLengthCm"]
petalWidths = iris["PetalWidthCm"]
plt.scatter(range(number_of_iris),(sepalLengths/sepalWidths))
plt.xlabel("ID")
plt.ylabel("Ratio")
plt.show()
Run Code Online (Sandbox Code Playgroud)
这段代码正确无误,但我试图以三种不同的颜色显示该图,以区分这3种不同的物种。我将代码更改为:
total_rows = iris.count
number_of_iris = len(iris)
sepalLengths = iris["SepalLengthCm"]
sepalWidths = iris["SepalWidthCm"]
petalLengths = iris["PetalLengthCm"]
petalWidths = iris["PetalWidthCm"]
sns.FacetGrid(iris, hue="Species", size=10) \
.map(range(number_of_iris),(sepalLengths/sepalWidths)) \
.add_legend()
Run Code Online (Sandbox Code Playgroud)
但收到错误:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-48-97e6cd0ab095> in <module>()
10 petalWidths = iris["PetalWidthCm"]
11
---> 12 sns.FacetGrid(iris, hue="Species", size=10) .map(range(number_of_iris),(sepalLengths/sepalWidths)) .add_legend()
Run Code Online (Sandbox Code Playgroud)
如何将每个物种绘制成不同的颜色?
数据的一小部分是:
47,5.1,3.8, 1.34, …Run Code Online (Sandbox Code Playgroud) 我正在分析Iris 数据集并在花瓣宽度和花瓣长度之间绘制散点图。为了制作情节,我使用了以下代码:
# First, we'll import pandas, a data processing and CSV file I/O library
import pandas as pd
# We'll also import seaborn, a Python graphing library
import warnings # current version of seaborn generates a bunch of warnings that we'll ignore
warnings.filterwarnings("ignore")
import seaborn as sns
import matplotlib.pyplot as plt
import numpy
sns.set(style="dark", color_codes=True)
# Next, we'll load the Iris flower dataset, which is in the "../input/" directory
iris = pd.read_csv("Iris.csv") # the iris dataset is …Run Code Online (Sandbox Code Playgroud) 下面的代码显示了一个图表,其中包含我列表中的值的数量:
import seaborn as sns
sns.countplot([0,1,2,3,1,2,1,3,2,1,2,1,3])
plt.show()
Run Code Online (Sandbox Code Playgroud)
我想要相同的百分比图。seaborn 或 matplotlib 是否有一个简单的选择?
我有以下数据框
Class Age Percentage
0 2004 3 43.491170
1 2004 2 29.616607
2 2004 4 13.838925
3 2004 6 10.049712
4 2004 5 2.637445
5 2004 1 0.366142
6 2005 2 51.267369
7 2005 3 19.589268
8 2005 6 13.730432
9 2005 4 11.155305
10 2005 5 3.343524
11 2005 1 0.913590
12 2005 9 0.000511
Run Code Online (Sandbox Code Playgroud)
我想使用 seaborn 绘制条形图,其中 y 轴是“百分比”,x 轴是“类别”,并使用“年龄”列标记它们。我还想按降序排列条形,即从较大的条形到较小的条形。
为了做到这一点,我想到了以下几点:我将hue_order根据“百分比”变量的顺序更改参数。例如,如果我按降序对 'Percentage' 列进行排序Class == 2004,则hue_order = [3, 2, 4, 6, 5, 1]. …
我可以用 searborn 绘制一个普通的条形图,但是当我指定orient = 'h'没有在我的图中显示任何内容时。
df = pd.DataFrame(['A','A','A','B','B','C'],columns = ['letters'])
data =df.letters.value_counts()
sns.barplot(x = data.index, y = data)
Run Code Online (Sandbox Code Playgroud)
与东方:
我有一个 12x17 的数据框,想创建一个如下所示的分类气泡图:
https://i.stack.imgur.com/IvD58.png(来自用于映射研究的分类气泡图)
我的数据框基本上是这样的:
# A B C
# X 0.3 0.2 0.4
# Y 0.1 0.4 0.1
Run Code Online (Sandbox Code Playgroud)
我不能使用 matplotlib.scatter 因为它不接受分类输入并且创建假值也不起作用,因为它不是 n*n。或者我可以吗?我想不通。我发现 seaborn.stripplot 需要一个分类输入,但所有气泡的大小都相同,所以我被卡住了。
任何想法如何在python中创建这样的情节?非常感谢。
是否可以设置海浪变形的最小和最大显示极限?
我试图遍历熊猫数据框的列,但是我所有的输出都使用相同的轴。
for v in var_list:
df[v].dropna(inplace=True)
var=df[v].max()
vstar = v + "_output.png"
splot = sns.distplot(df[v])
# sns.plt.xlim(0, var)
splot.figure.savefig(vstar)
splot.autoscale()
Run Code Online (Sandbox Code Playgroud)
我与几个尝试sns.plt.xlim()和自动量程(),但也似乎这样的伎俩。我想念什么?
我正在尝试创建下图,但将月份写成 xticks 而不是整数:
我的代码目前看起来像这样:
plt.figure(figsize=(10,5))
sns.lineplot(x="Month",y="DHN",data = df.head(1100),color="BLACK")
sns.lineplot(x="Month",y="Heat Loss",data = df.head(1100),color ="RED")
Run Code Online (Sandbox Code Playgroud)
结果是:
显然,这张图有很多地方是错误的。图表 x 轴应该从一月开始,数据框内的值在几个月内堆积起来(?),并且df.head(1100)不应该包括像十二月或九月这样的月份。
数据框的第一行如下所示:
以日期作为日期时间。
我错过了什么,它没有按照我想要的方式工作?
我想在 seaborn 直方图 (distplot) 上创建五个子图(数据框特定列中的每个类别一个)。
我的数据集是:
prog score
cool 1.9
cool 3.7
yay 4.5
yay 2.6
neat 1.4
neat 7
neat 6
wow 4.1
wow 1.7
wow 1.4
hooray 6.6
hooray 5.6
hooray 4.9
yikes 1.2
yikes 3.9
yikes 6.9
Run Code Online (Sandbox Code Playgroud)
我不希望所有的 'prog's 都被绘制出来,只是一个列表中的每个:
prog score
cool 1.9
cool 3.7
yay 4.5
yay 2.6
neat 1.4
neat 7
neat 6
wow 4.1
wow 1.7
wow 1.4
hooray 6.6
hooray 5.6
hooray 4.9
yikes 1.2
yikes 3.9
yikes 6.9
Run Code Online (Sandbox Code Playgroud)
prog_list …Run Code Online (Sandbox Code Playgroud) 我有一个很好的图形,它用通用代码绘制如下:
import seaborn as sns
sns.barplot(data=df, x='X', y='y', hue='HUE', capsize=.1)
Run Code Online (Sandbox Code Playgroud)
默认情况下,误差条显示 95% 置信区间(我认为)。有没有办法可以轻松地将它们更改为标准错误?
python ×10
seaborn ×10
matplotlib ×8
pandas ×4
bar-chart ×1
kaggle ×1
loops ×1
plot ×1
regression ×1