【发布时间】:2021-09-03 07:01:10
【问题描述】:
我有一个 15 行的 csv,每行有 50 个值,即 50 列。 第一行,即标题具有值的标签/名称。
文件看起来像这样(填充了 50 列,15 行,一些值是 nan):
label1, label2, label3, ..., label50
0123, 345, nan, ..., 287
4324, nan, 343, ..., 362
...
我想垂直绘制每一列的值。 对于 15 行,包括标题 = 一个水平 x 值(即标签)上的 14 个值。 这样我的 X 轴是离散的,标签名称作为值。
一种有效但仅适用于箱线图而非散点图的方法如下(有关图像,请参阅https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.boxplot.html):
df = pd.read_csv("data.csv", delimiter=",")
df.plot.box() # plots boxplot with discrete x-axis values as labels
plt.xticks(rotation=90, ha='right') # label names are 90 degree turned on x-axis
plt.yscale(log) # logscale for my dataset
plt.show()
我希望得到与箱线图相同的结果。但是,我希望看到垂直分布的列的每个点而不是框,并且如果可能的话,csv 的每一行都以独特的颜色显示,以便在图表中将行彼此分开。 (一行是数据点的一个“组合”)
作为一个初学者,我还没有找到解决方案...
提前非常感谢。如果您不理解我的解释,请随时询问。
【问题讨论】:
-
感谢您的回复!我将“名称”列添加到我的 csv 中。着色工作!但我不想要线条,而是想要点。你知道用点而不是线来绘制它的方法吗?
标签: python pandas matplotlib seaborn