pandas Python Matplotlib在单个图形中绘制多个数据

rggaifut  于 2023-01-01  发布在  Python
关注(0)|答案(2)|浏览(154)

我正试图找到一种有意义的方法,将所有数据绘制在一张图表中。
我的数据经过所有转换后看起来像这样
| 股票|日期|行动|数量|成交%|
| - ------| - ------| - ------| - ------| - ------|
| 阿里汉特图尔内索有限公司|二〇二二年十二月二十七日|处置|小行星2836900|二十八六六零四七七|
| 北京融信金融服务有限公司|二〇二二年十二月二十八日|处置|三十八万元|七、八三九二五四|
| HCKK创业有限公司|二〇二二年十二月二十八日|收购|小行星1866917.0|小行星50.32|
| HCKK创业有限公司|二〇二二年十二月二十八日|处置|小行星1866917.0|小行星50.32|
| 马法特拉尔工业有限公司|二〇二二年十二月二十七日|收购|11500000元|十六、三十六九一七|
| 马法特拉尔工业有限公司|二〇二二年十二月二十七日|处置|11500000元|十六、三十六九一七|
| 美格瑞金融投资有限公司|二〇二二年十二月二十八日|撤销|十二万六千元|6.331658美元|
| 施瑞赛工程有限公司|二〇二二年十二月二十六日|处置|二四十六万元|十八六十三万一千五百六十五|
| Suumaya有限公司|二〇二二年十二月二十七日|认捐|小行星10108008.0|小行星40. 885|
| Yarn集团有限公司|二〇二二年十二月二十八日|处置|三十三万元|八百八十万|

normal plotting will be like 
df.plot(kind='bar', x='Stock', y='Quantity', color='olivedrab')

但这将给出一个2数据图,我试图让所有的数据绘制在一个单一的图表
另一种方法可以做到-

ax = df.plot(kind='bar', x='Stock', y='Quantity', figsize=(16, 8), color='olivedrab')

ax1 = df['Traded %'].plot(secondary_y=True, ax=ax, color='indianred')

ax.tick_params(axis='x', labelsize=14, rotation=90)
plt.show()

这会生成一个像这样的图片,请检查链接-但我错过了日期。[1]:https://i.stack.imgur.com/9VNYC.jpg
请,如果你有任何其他方法来绘制他们在一个单一的图表,请分享...

jtjikinw

jtjikinw1#

要在同一个图表上绘制多个数据集,您可以尝试如下:

# Import the Matplotlib library
import matplotlib.pyplot as plt

# Prepare the data for the first dataset
x1 = [1, 2, 3, 4]  # x-values
y1 = [10, 20, 25, 30]  # y-values

# Prepare the data for the second dataset
x2 = [1, 2, 3, 4]  # x-values
y2 = [5, 10, 15, 20]  # y-values

# Create a figure and an axis
fig, ax = plt.subplots()

# Plot the first dataset on the axis
ax.plot(x1, y1,  # x and y values
        color='r',  # line color
        linestyle='--',  # line style
        label='dataset 1')  # label for the legend

# Plot the second dataset on the axis
ax.plot(x2, y2,  # x and y values
        color='b',  # line color
        linestyle='-',  # line style
        label='dataset 2')  # label for the legend

# Add a legend to the plot
ax.legend()

# Add labels to the x and y axes
ax.set_xlabel('X axis')
ax.set_ylabel('Y axis')

# Add a title to the plot
ax.set_title('Multiple datasets')

# Show the plot
plt.show()

这将创建一个带有两条线的图表,每条线对应一个数据集,具有不同的颜色和线条样式。
图例将用相应的数据集标记每一行。

nlejzf6q

nlejzf6q2#

试试这个:

import matplotlib
import matplotlib.pyplot as plt
import seaborn as sns

ax1 = sns.set_style(style=None, rc=None )

fig, ax1 = plt.subplots(figsize=(12,6))

sns.lineplot(data = df,x='Stock', y='Traded', marker='o', sort = False, ax=ax1)
ax2 = ax1.twinx()

sns.barplot(data = df, x='Stock', y='Quantity', alpha=0.5, ax=ax2)

相关问题